From 1905ebd666830dab06aa09f279ae392195cde961 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 20 Jul 2023 03:25:08 +0200 Subject: [PATCH 1/3] CMake: Allow to use system installed cereal --- CMakeLists.txt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5810665..cc17255 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,6 +19,7 @@ set(INSTALL_ICONS_DIR "share/icons/hicolor" CACHE STRING "Install the icon in a set(INSTALL_LOCALE_DIR "${INSTALL_DATA_DIR}/locale/" CACHE STRING "Install translation to this dir") set(INSTALL_METAINFO_DIR "share/metainfo" CACHE STRING "Install appstream matedata to this directory") +option(BLOCKATTACK_USE_EMBEDDED_CEREAL "Use the embedded version of cereal" ON) option(BLOCKATTACK_USE_EMBEDDED_FMT "Use the embedded version of {fmt}" ON) option(BLOCKATTACK_USE_EMBEDDED_PLATFORM_FOLDERS "Use the embedded version of PlatformFolders" ON) @@ -88,6 +89,16 @@ file(GLOB SOURCES "source/code/*.cpp" "source/code/*/*.cpp" "source/code/Libs/*. message("${SOURCES}") message("${CMAKE_EXE_LINKER_FLAGS}") +#building/compiling/linking +add_executable(blockattack ${GUI_TYPE} ${SOURCES} ${RES_FILES}) + +if (BLOCKATTACK_USE_EMBEDDED_CEREAL) + target_include_directories(blockattack PRIVATE "source/code/Libs/include/cereal/external") #Contains rapidjson +else() + find_package(cereal 1.2.0 REQUIRED) + target_include_directories(blockattack PRIVATE ${CEREAL_INCLUDE_DIRS}) +endif() + if (BLOCKATTACK_USE_EMBEDDED_FMT) message("Using embedded {fmt}") add_subdirectory("source/misc/embedded_libs/fmt-8.1.1" EXCLUDE_FROM_ALL) @@ -101,11 +112,8 @@ if (BLOCKATTACK_USE_EMBEDDED_PLATFORM_FOLDERS) endif() -#building/compiling/linking -add_executable(blockattack ${GUI_TYPE} ${SOURCES} ${RES_FILES}) target_include_directories(blockattack PRIVATE "source/code/Libs/include") -target_include_directories(blockattack PRIVATE "source/code/Libs/include/cereal/external") #Contains rapidjson target_include_directories(blockattack PRIVATE ${SDL2_INCLUDE_DIRS}) target_include_directories(blockattack PRIVATE ${SDL2MIXER_INCLUDE_DIRS}) target_include_directories(blockattack PRIVATE ${SDL2IMAGE_INCLUDE_DIRS}) From 2be068fc151dd05014afd95d0c0f1627bcf98c36 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 20 Jul 2023 03:26:07 +0200 Subject: [PATCH 2/3] CMake: Proper targets for system platform_folders --- CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cc17255..dfc854b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,8 +109,13 @@ if (BLOCKATTACK_USE_EMBEDDED_PLATFORM_FOLDERS) message("Using embedded PlatformFolders") add_subdirectory("source/misc/embedded_libs/PlatformFolders-4.2.0" EXCLUDE_FROM_ALL) message("Done processing PlatformFolders") -endif() + target_link_libraries(blockattack PRIVATE platform_folders) +else() + find_package(platform_folders 4.1.0 REQUIRED) + target_include_directories(blockattack PRIVATE "/usr/include/sago/") + target_link_libraries(blockattack PRIVATE sago::platform_folders) +endif() target_include_directories(blockattack PRIVATE "source/code/Libs/include") @@ -122,7 +127,6 @@ target_include_directories(blockattack PRIVATE ${Intl_INCLUDE_DIRS}) target_link_libraries(blockattack PRIVATE ${SDL2_LIBRARIES}) target_link_libraries(blockattack PRIVATE fmt) -target_link_libraries(blockattack PRIVATE platform_folders) target_link_libraries(blockattack PRIVATE physfs) if (MACOSX) target_link_libraries(blockattack PRIVATE intl) From 05290ad5c9324213ea1c85b0241cd73f79793ec7 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 20 Jul 2023 03:26:32 +0200 Subject: [PATCH 3/3] CMake: Allow to use system utfcpp --- CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dfc854b..59d296e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,6 +22,7 @@ set(INSTALL_METAINFO_DIR "share/metainfo" CACHE STRING "Install appstream mateda option(BLOCKATTACK_USE_EMBEDDED_CEREAL "Use the embedded version of cereal" ON) option(BLOCKATTACK_USE_EMBEDDED_FMT "Use the embedded version of {fmt}" ON) option(BLOCKATTACK_USE_EMBEDDED_PLATFORM_FOLDERS "Use the embedded version of PlatformFolders" ON) +option(BLOCKATTACK_USE_EMBEDDED_UTFCPP "Use the embedded version of utfcpp" ON) # This sets up the exe icon for windows under mingw. # Taken from https://hansonry.wordpress.com/2010/12/15/windows-application-icon-using-mingw-and-cmake/ @@ -117,8 +118,13 @@ else() target_link_libraries(blockattack PRIVATE sago::platform_folders) endif() +if (BLOCKATTACK_USE_EMBEDDED_UTFCPP) + target_include_directories(blockattack PRIVATE "source/code/Libs/include/") +else() + find_package(utf8cpp REQUIRED) + target_include_directories(blockattack PRIVATE "/usr/include/utf8cpp/") +endif() -target_include_directories(blockattack PRIVATE "source/code/Libs/include") target_include_directories(blockattack PRIVATE ${SDL2_INCLUDE_DIRS}) target_include_directories(blockattack PRIVATE ${SDL2MIXER_INCLUDE_DIRS}) target_include_directories(blockattack PRIVATE ${SDL2IMAGE_INCLUDE_DIRS})