Procházet zdrojové kódy

Merge pull request #1064 from bpay/cmake-fixes

CMake fixes
Luis Anton Rebollo před 10 roky
rodič
revize
f4b3d1e4cb
2 změnil soubory, kde provedl 26 přidání a 18 odebrání
  1. 13 16
      Tools/CMake/basics.cmake
  2. 13 2
      Tools/CMake/torque3d.cmake

+ 13 - 16
Tools/CMake/basics.cmake

@@ -94,13 +94,17 @@ macro(__addDef def config)
     if(TARGET ${PROJECT_NAME})
         #message(STATUS "directly applying defs: ${PROJECT_NAME} with config ${config}: ${def}")
         if("${config}" STREQUAL "")
-            set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS "${def}")
+            set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS ${def})
         else()
-            set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS_${config} "${def}")
+            set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:${config}>:${def}>)
         endif()
     else()
-        list(APPEND ${PROJECT_NAME}_defs_${config} ${def})
-        #message(STATUS "added definition to cache: ${PROJECT_NAME}_defs_${config}: ${${PROJECT_NAME}_defs_${config}}")
+        if("${config}" STREQUAL "")
+            list(APPEND ${PROJECT_NAME}_defs_ ${def})
+        else()
+            list(APPEND ${PROJECT_NAME}_defs_ $<$<CONFIG:${config}>:${def}>)
+        endif()
+        #message(STATUS "added definition to cache: ${PROJECT_NAME}_defs_: ${${PROJECT_NAME}_defs_}")
     endif()
 endmacro()
 
@@ -108,7 +112,7 @@ endmacro()
 macro(addDef def)
     set(def_configs "")
     if(${ARGC} GREATER 1)
-        foreach(config "${ARGV1}")
+        foreach(config ${ARGN})
             __addDef(${def} ${config})
         endforeach()
     else()
@@ -119,16 +123,9 @@ endmacro()
 # this applies cached definitions onto the target
 macro(_process_defs)
     if(DEFINED ${PROJECT_NAME}_defs_)
-        set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS "${${PROJECT_NAME}_defs_}")
-        #message(STATUS "applying defs to project ${PROJECT_NAME} on all configs: ${${PROJECT_NAME}_defs_}")
+        set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS ${${PROJECT_NAME}_defs_})
+        #message(STATUS "applying defs to project ${PROJECT_NAME}: ${${PROJECT_NAME}_defs_}")
     endif()
-    foreach(def_config ${CMAKE_CONFIGURATION_TYPES})
-        string(TOUPPER "${def_config}" def_config)
-        if(DEFINED ${PROJECT_NAME}_defs_${def_config})
-            set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS_${def_config} "${${PROJECT_NAME}_defs_${def_config}}")
-            #message(STATUS "applying defs to project ${PROJECT_NAME} on config ${def_config}: ${${PROJECT_NAME}_defs_${def_config}}")
-        endif()
-    endforeach()
 endmacro()
 
 ###############################################################################
@@ -346,9 +343,9 @@ if(WIN32)
     set(TORQUE_CXX_FLAGS_LIBS "/W0" CACHE TYPE STRING)
     mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)
 
-    set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "-DUNICODE -D_UNICODE /MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /fp:fast /fp:except- /GR /Zc:wchar_t- /D_CRT_SECURE_NO_WARNINGS" )
+    set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "-DUNICODE -D_UNICODE -D_CRT_SECURE_NO_WARNINGS /MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /fp:fast /fp:except- /GR /Zc:wchar_t-" )
     if( TORQUE_CPU_X32 )
-       set(TORQUE_CXX_FLAGS_COMMON_DEFAULT ${TORQUE_CXX_FLAGS_COMMON_DEFAULT}" /arch:SSE2")
+       set(TORQUE_CXX_FLAGS_COMMON_DEFAULT "${TORQUE_CXX_FLAGS_COMMON_DEFAULT} /arch:SSE2")
     endif()
     set(TORQUE_CXX_FLAGS_COMMON ${TORQUE_CXX_FLAGS_COMMON_DEFAULT} CACHE TYPE STRING)
     

+ 13 - 2
Tools/CMake/torque3d.cmake

@@ -534,8 +534,8 @@ endif()
 ###############################################################################
 # Always enabled Definitions
 ###############################################################################
-addDef(TORQUE_DEBUG DEBUG)
-addDef(TORQUE_ENABLE_ASSERTS "DEBUG;RelWithDebInfo")
+addDef(TORQUE_DEBUG Debug)
+addDef(TORQUE_ENABLE_ASSERTS "Debug;RelWithDebInfo")
 addDef(TORQUE_DEBUG_GFX_MODE "RelWithDebInfo")
 addDef(TORQUE_SHADERGEN)
 addDef(INITGUID)
@@ -596,6 +596,17 @@ if(UNIX)
 	addInclude("/usr/include/freetype2")
 endif()
 
+if(MSVC)
+    # Match projectGenerator naming for executables
+    set(OUTPUT_CONFIG DEBUG MINSIZEREL RELWITHDEBINFO)
+    set(OUTPUT_SUFFIX DEBUG MINSIZE    OPTIMIZEDDEBUG)
+    foreach(INDEX RANGE 2)
+        list(GET OUTPUT_CONFIG ${INDEX} CONF)
+        list(GET OUTPUT_SUFFIX ${INDEX} SUFFIX)
+        set_property(TARGET ${PROJECT_NAME} PROPERTY OUTPUT_NAME_${CONF} ${PROJECT_NAME}_${SUFFIX})
+    endforeach()
+endif()
+
 ###############################################################################
 # Installation
 ###############################################################################