From 52f6a37f606235ad35c2ffb6c4457ac788eeb6e0 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Wed, 19 Sep 2018 15:24:44 +0700 Subject: [PATCH] remove global definitions from cmakelists --- CMakeLists.txt | 59 +++++++++++++++++++++++------------------- samples/CMakeLists.txt | 9 +++++-- untests/CMakeLists.txt | 9 +++++-- 3 files changed, 47 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ee5d42cd..45f8df08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,24 +2,25 @@ cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR) project(enduro2d) # -# global defines +# build mode # -enable_testing() +foreach(flags CMAKE_C_FLAGS_DEBUG + CMAKE_CXX_FLAGS_DEBUG) + set(${flags} "${${flags}} -D_DEBUG -DNRELEASE") +endforeach(flags) -set(CMAKE_CXX_STANDARD 14) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - -set(E2D_DEBUG_FLAGS " -D_DEBUG -DNRELEASE") -set(E2D_RELEASE_FLAGS " -DNDEBUG -D_RELEASE") -set(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}${E2D_DEBUG_FLAGS}) -set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}${E2D_DEBUG_FLAGS}) -set(CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE}${E2D_RELEASE_FLAGS}) -set(CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE}${E2D_RELEASE_FLAGS}) +foreach(flags CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELWITHDEBINFO) + set(${flags} "${${flags}} -DNDEBUG -D_RELEASE") +endforeach(flags) # -# warnings +# warning mode # if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") @@ -39,46 +40,51 @@ endif() # e2d sources # -file(GLOB_RECURSE e2d_headers +file(GLOB_RECURSE E2D_HEADERS headers/enduro2d/*.hpp headers/enduro2d/*.inl) -file(GLOB_RECURSE e2d_sources +file(GLOB_RECURSE E2D_SOURCES sources/enduro2d/*.cpp sources/enduro2d/*.hpp headers/enduro2d/*.inl) if(APPLE) - file(GLOB_RECURSE e2d_sources_mm + file(GLOB_RECURSE E2D_SOURCES_MM sources/enduro2d/*.mm) - list(APPEND e2d_sources ${e2d_sources_mm}) + list(APPEND E2D_SOURCES ${E2D_SOURCES_MM}) endif() # -# 3rd party +# e2d 3rd party # -file(GLOB_RECURSE e2d_3rdparty +file(GLOB_RECURSE E2D_3RDPARTY sources/3rdparty/*.*) # -# e2d library +# e2d library target # add_library(${PROJECT_NAME} STATIC - ${e2d_headers} - ${e2d_sources} - ${e2d_3rdparty}) + ${E2D_HEADERS} + ${E2D_SOURCES} + ${E2D_3RDPARTY}) source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES - ${e2d_headers} - ${e2d_sources} - ${e2d_3rdparty}) + ${E2D_HEADERS} + ${E2D_SOURCES} + ${E2D_3RDPARTY}) target_include_directories(${PROJECT_NAME} PRIVATE headers sources) +set_target_properties(${PROJECT_NAME} PROPERTIES + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + # # subdirectories # @@ -90,5 +96,6 @@ endif() option(E2D_BUILD_UNTESTS "Build untests" ON) if(E2D_BUILD_UNTESTS) + enable_testing() add_subdirectory(untests) endif() diff --git a/samples/CMakeLists.txt b/samples/CMakeLists.txt index 67420ee5..bd1a50c8 100644 --- a/samples/CMakeLists.txt +++ b/samples/CMakeLists.txt @@ -48,6 +48,11 @@ function(add_e2d_sample NAME) ${Foundation}) endif(APPLE) + set_target_properties(${SAMPLE_NAME} PROPERTIES + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + # # resources # @@ -57,12 +62,12 @@ function(add_e2d_sample NAME) COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_BINARY_DIR}/$/bin) - else() + else(MSVC) add_custom_command(TARGET ${SAMPLE_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_BINARY_DIR}/bin) - endif() + endif(MSVC) endfunction(add_e2d_sample) add_e2d_sample(00) diff --git a/untests/CMakeLists.txt b/untests/CMakeLists.txt index 4b60d85a..2035a2a4 100644 --- a/untests/CMakeLists.txt +++ b/untests/CMakeLists.txt @@ -40,6 +40,11 @@ function(add_e2d_tests NAME) ${Foundation}) endif(APPLE) + set_target_properties(${TESTS_NAME} PROPERTIES + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO) + # # resources # @@ -49,12 +54,12 @@ function(add_e2d_tests NAME) COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_BINARY_DIR}/$/bin) - else() + else(MSVC) add_custom_command(TARGET ${TESTS_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_BINARY_DIR}/bin) - endif() + endif(MSVC) # # tests