Linux un Windows build differences in CMakeLists and appropriate README

This commit is contained in:
jorenchik
2024-12-08 11:05:50 +02:00
parent 0d53d4fd7b
commit 5df0bf864f
5 changed files with 144 additions and 16 deletions

View File

@@ -1,21 +1,31 @@
# cmake_minimum_required(VERSION 3.10)
# if(CMAKE_VERSION VERSION_LESS "3.7.0")
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
# endif()
# set(CMAKE_CXX_STANDARD 20)
# set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
find_package(Qt5 COMPONENTS Widgets REQUIRED)
if (WIN32)
set(DEFAULT_QT5_DIR "C:/Qt/5.15.0/mingw81_64/lib/cmake/Qt5")
set(DEFAULT_QSCINTILLA_LIB_PATH "C:/Programs/binaries/qscintilla2_qt5.dll")
set(DEFAULT_QSCINTILLA_INCLUDE_PATH "C:/Programs/QScintilla_src-2.14.1/src")
else()
set(DEFAULT_QT5_DIR "/usr/lib/cmake/Qt5")
set(DEFAULT_QSCINTILLA_LIB_PATH "/usr/lib/libqscintilla2_qt5.so")
set(DEFAULT_QSCINTILLA_INCLUDE_PATH "/usr/include/qt/Qsci")
endif()
# find_package(QScintilla REQUIRED)
include_directories(/usr/include/qt/Qsci)
set(Qt5_DIR ${DEFAULT_QT5_DIR} CACHE PATH "Path to Qt5 CMake configuration")
set(QSCINTILLA_LIB_PATH ${DEFAULT_QSCINTILLA_LIB_PATH} CACHE PATH "Path to QScintilla library")
set(QSCINTILLA_INCLUDE_PATH ${DEFAULT_QSCINTILLA_INCLUDE_PATH} CACHE PATH "Path to QScintilla include files")
set(CMAKE_PREFIX_PATH ${Qt5_DIR} ${CMAKE_PREFIX_PATH})
include_directories(${QSCINTILLA_INCLUDE_PATH})
option(WIN32_EXECUTABLE "Set this option to remove terminal opening on Windows" OFF)
if (WIN32 AND WIN32_EXECUTABLE)
set_target_properties(MdemoryApp PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
find_package(Qt5 COMPONENTS Widgets Gui REQUIRED)
qt5_add_resources(RESOURCES ${CMAKE_SOURCE_DIR}/resources/resources.qrc)
add_library(
@@ -31,6 +41,6 @@ add_executable(
${RESOURCES}
)
target_link_libraries(gui Qt5::Widgets /usr/lib/libqscintilla2_qt5.so api)
target_link_libraries(gui Qt5::Widgets Qt5::Gui ${QSCINTILLA_LIB_PATH} api)
target_link_libraries(MdemoryApp gui)
target_include_directories(MdemoryApp PRIVATE ${CMAKE_SOURCE_DIR}/src/include)

View File

@@ -4,6 +4,20 @@ project(MdemoryTest)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (WIN32)
set(DEFAULT_GTEST_INCLUDE_DIR "C:/Programs/binaries/gtest_include")
set(DEFAULT_GTEST_LIBRARY "C:/Programs/binaries/gtest_lib/libgtest.a")
set(DEFAULT_GTEST_MAIN_LIBRARY "C:/Programs/binaries/gtest_lib/libgtest_main.a")
else()
set(DEFAULT_GTEST_INCLUDE_DIR "/usr/include/gtest")
set(DEFAULT_GTEST_LIBRARY "/usr/lib/libgtest.so")
set(DEFAULT_GTEST_MAIN_LIBRARY "/usr/lib/libgtest_main.so")
endif()
set(GTEST_INCLUDE_DIR ${DEFAULT_GTEST_INCLUDE_DIR} CACHE PATH "Path to GTest include directory")
set(GTEST_LIBRARY ${DEFAULT_GTEST_LIBRARY} CACHE FILEPATH "Path to GTest library")
set(GTEST_MAIN_LIBRARY ${DEFAULT_GTEST_MAIN_LIBRARY} CACHE FILEPATH "Path to GTest main library")
find_package(GTest REQUIRED)
enable_testing()

View File

@@ -84,6 +84,7 @@ Result<NoneType> ValidateGrammar(const std::vector<Token>& tokens) {
nextToken.tokenType
) == (*transitions)[token.tokenType].end()) {
auto capitalize = [](const std::string& str) {
if (str.empty()) return str;
std::string result = str;