remove global definitions from cmakelists

This commit is contained in:
2018-09-19 15:24:44 +07:00
parent 478b54f9ce
commit 52f6a37f60
3 changed files with 47 additions and 30 deletions

View File

@@ -2,24 +2,25 @@ cmake_minimum_required(VERSION 3.9.2 FATAL_ERROR)
project(enduro2d) 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) foreach(flags CMAKE_C_FLAGS_RELEASE
set(CMAKE_CXX_STANDARD_REQUIRED ON) CMAKE_C_FLAGS_MINSIZEREL
set(CMAKE_CXX_EXTENSIONS OFF) CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS_RELEASE
set(E2D_DEBUG_FLAGS " -D_DEBUG -DNRELEASE") CMAKE_CXX_FLAGS_MINSIZEREL
set(E2D_RELEASE_FLAGS " -DNDEBUG -D_RELEASE") CMAKE_CXX_FLAGS_RELWITHDEBINFO)
set(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG}${E2D_DEBUG_FLAGS}) set(${flags} "${${flags}} -DNDEBUG -D_RELEASE")
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}${E2D_DEBUG_FLAGS}) endforeach(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})
# #
# warnings # warning mode
# #
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
@@ -39,46 +40,51 @@ endif()
# e2d sources # e2d sources
# #
file(GLOB_RECURSE e2d_headers file(GLOB_RECURSE E2D_HEADERS
headers/enduro2d/*.hpp headers/enduro2d/*.hpp
headers/enduro2d/*.inl) headers/enduro2d/*.inl)
file(GLOB_RECURSE e2d_sources file(GLOB_RECURSE E2D_SOURCES
sources/enduro2d/*.cpp sources/enduro2d/*.cpp
sources/enduro2d/*.hpp sources/enduro2d/*.hpp
headers/enduro2d/*.inl) headers/enduro2d/*.inl)
if(APPLE) if(APPLE)
file(GLOB_RECURSE e2d_sources_mm file(GLOB_RECURSE E2D_SOURCES_MM
sources/enduro2d/*.mm) sources/enduro2d/*.mm)
list(APPEND e2d_sources ${e2d_sources_mm}) list(APPEND E2D_SOURCES ${E2D_SOURCES_MM})
endif() endif()
# #
# 3rd party # e2d 3rd party
# #
file(GLOB_RECURSE e2d_3rdparty file(GLOB_RECURSE E2D_3RDPARTY
sources/3rdparty/*.*) sources/3rdparty/*.*)
# #
# e2d library # e2d library target
# #
add_library(${PROJECT_NAME} STATIC add_library(${PROJECT_NAME} STATIC
${e2d_headers} ${E2D_HEADERS}
${e2d_sources} ${E2D_SOURCES}
${e2d_3rdparty}) ${E2D_3RDPARTY})
source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES
${e2d_headers} ${E2D_HEADERS}
${e2d_sources} ${E2D_SOURCES}
${e2d_3rdparty}) ${E2D_3RDPARTY})
target_include_directories(${PROJECT_NAME} PRIVATE target_include_directories(${PROJECT_NAME} PRIVATE
headers headers
sources) sources)
set_target_properties(${PROJECT_NAME} PROPERTIES
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
# #
# subdirectories # subdirectories
# #
@@ -90,5 +96,6 @@ endif()
option(E2D_BUILD_UNTESTS "Build untests" ON) option(E2D_BUILD_UNTESTS "Build untests" ON)
if(E2D_BUILD_UNTESTS) if(E2D_BUILD_UNTESTS)
enable_testing()
add_subdirectory(untests) add_subdirectory(untests)
endif() endif()

View File

@@ -48,6 +48,11 @@ function(add_e2d_sample NAME)
${Foundation}) ${Foundation})
endif(APPLE) endif(APPLE)
set_target_properties(${SAMPLE_NAME} PROPERTIES
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
# #
# resources # resources
# #
@@ -57,12 +62,12 @@ function(add_e2d_sample NAME)
COMMAND ${CMAKE_COMMAND} -E copy_directory COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_SOURCE_DIR}/bin
${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/bin) ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/bin)
else() else(MSVC)
add_custom_command(TARGET ${SAMPLE_NAME} POST_BUILD add_custom_command(TARGET ${SAMPLE_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_SOURCE_DIR}/bin
${CMAKE_CURRENT_BINARY_DIR}/bin) ${CMAKE_CURRENT_BINARY_DIR}/bin)
endif() endif(MSVC)
endfunction(add_e2d_sample) endfunction(add_e2d_sample)
add_e2d_sample(00) add_e2d_sample(00)

View File

@@ -40,6 +40,11 @@ function(add_e2d_tests NAME)
${Foundation}) ${Foundation})
endif(APPLE) endif(APPLE)
set_target_properties(${TESTS_NAME} PROPERTIES
CXX_STANDARD 14
CXX_STANDARD_REQUIRED YES
CXX_EXTENSIONS NO)
# #
# resources # resources
# #
@@ -49,12 +54,12 @@ function(add_e2d_tests NAME)
COMMAND ${CMAKE_COMMAND} -E copy_directory COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_SOURCE_DIR}/bin
${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/bin) ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/bin)
else() else(MSVC)
add_custom_command(TARGET ${TESTS_NAME} POST_BUILD add_custom_command(TARGET ${TESTS_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/bin ${CMAKE_CURRENT_SOURCE_DIR}/bin
${CMAKE_CURRENT_BINARY_DIR}/bin) ${CMAKE_CURRENT_BINARY_DIR}/bin)
endif() endif(MSVC)
# #
# tests # tests