From f680d102599878b02c694127afb9260b5e53b8ed Mon Sep 17 00:00:00 2001 From: sfan5 Date: Mon, 26 Sep 2022 17:02:49 +0200 Subject: [PATCH] Other minor CMake improvements --- CMakeLists.txt | 26 +++++++++++--------------- lib/bitop/CMakeLists.txt | 5 +++-- src/CMakeLists.txt | 8 +++++--- 3 files changed, 19 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2681f8259..d4ecda37b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,6 +136,17 @@ if(BUILD_CLIENT AND TARGET IrrlichtMt::IrrlichtMt) endif() endif() +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${GCC_MINIMUM_VERSION}") + message(FATAL_ERROR "Insufficient gcc version, found ${CMAKE_CXX_COMPILER_VERSION}. " + "Version ${GCC_MINIMUM_VERSION} or higher is required.") + endif() +elseif(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang") + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${CLANG_MINIMUM_VERSION}") + message(FATAL_ERROR "Insufficient clang version, found ${CMAKE_CXX_COMPILER_VERSION}. " + "Version ${CLANG_MINIMUM_VERSION} or higher is required.") + endif() +endif() # Installation @@ -278,23 +289,9 @@ find_package(GMP REQUIRED) find_package(Json REQUIRED) find_package(Lua REQUIRED) if(NOT USE_LUAJIT) - set(LUA_BIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/bitop) - set(LUA_BIT_LIBRARY bitop) add_subdirectory(lib/bitop) endif() -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${GCC_MINIMUM_VERSION}") - message(FATAL_ERROR "Insufficient gcc version, found ${CMAKE_CXX_COMPILER_VERSION}. " - "Version ${GCC_MINIMUM_VERSION} or higher is required.") - endif() -elseif(CMAKE_CXX_COMPILER_ID MATCHES "(Apple)?Clang") - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "${CLANG_MINIMUM_VERSION}") - message(FATAL_ERROR "Insufficient clang version, found ${CMAKE_CXX_COMPILER_VERSION}. " - "Version ${CLANG_MINIMUM_VERSION} or higher is required.") - endif() -endif() - if(BUILD_BENCHMARKS) add_subdirectory(lib/catch2) endif() @@ -303,7 +300,6 @@ endif() # Be sure to add all relevant definitions above this add_subdirectory(src) - # CPack set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "A free open-source voxel game engine with easy modding and game creation.") diff --git a/lib/bitop/CMakeLists.txt b/lib/bitop/CMakeLists.txt index 80b627446..2aec86f27 100644 --- a/lib/bitop/CMakeLists.txt +++ b/lib/bitop/CMakeLists.txt @@ -1,4 +1,5 @@ add_library(bitop STATIC bit.cpp) -target_link_libraries(bitop) +target_include_directories(bitop PRIVATE ${LUA_INCLUDE_DIR}) -include_directories(${LUA_INCLUDE_DIR}) +set(LUA_BIT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE) +set(LUA_BIT_LIBRARY bitop PARENT_SCOPE) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 1f1e987f7..64aef356a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -241,6 +241,10 @@ endif() # Use cmake_config.h add_definitions(-DUSE_CMAKE_CONFIG_H) +set(THREADS_PREFER_PTHREAD_FLAG ON) +find_package(Threads REQUIRED) +set(PLATFORM_LIBS Threads::Threads) + if(WIN32) # Windows if(MSVC) # MSVC Specifics @@ -251,8 +255,6 @@ if(WIN32) add_definitions(/D "_USE_MATH_DEFINES") # Dont define min/max macros in minwindef.h add_definitions(/D "NOMINMAX") - else() # Probably MinGW = GCC - set(PLATFORM_LIBS "") endif() set(PLATFORM_LIBS ws2_32.lib version.lib shlwapi.lib winmm.lib ${PLATFORM_LIBS}) @@ -282,7 +284,7 @@ else() endif(NOT HAIKU AND NOT APPLE) endif() - set(PLATFORM_LIBS -lpthread ${CMAKE_DL_LIBS}) + set(PLATFORM_LIBS ${PLATFORM_LIBS} ${CMAKE_DL_LIBS}) if(APPLE) set(PLATFORM_LIBS "-framework CoreFoundation" ${PLATFORM_LIBS}) else()