From 1e06fd2e60d2a1b0aa28edc06dd361af6ad31cb2 Mon Sep 17 00:00:00 2001 From: LuisAntonRebollo Date: Wed, 28 May 2014 12:23:18 +0200 Subject: [PATCH 1/3] Improvements on CMake generator. * Suppress selected warnings on VC. * Configurable directories (for CI server). --- Tools/CMake/basics.cmake | 18 ++++++++++++------ Tools/CMake/torque3d.cmake | 14 +++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/Tools/CMake/basics.cmake b/Tools/CMake/basics.cmake index aa829fafa..8a87fe1d2 100644 --- a/Tools/CMake/basics.cmake +++ b/Tools/CMake/basics.cmake @@ -2,9 +2,15 @@ project("Torque3DEngine") set(TORQUE_TEMPLATE "Full" CACHE STRING "the template to use") -set(projectDir "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_APP_NAME}") -set(projectOutDir "${projectDir}/game") -set(projectSrcDir "${projectDir}/source") +if(NOT projectDir) + set(projectDir "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_APP_NAME}") +endif() +if(NOT projectOutDir) + set(projectOutDir "${projectDir}/game") +endif() +if(NOT projectSrcDir) + set(projectSrcDir "${projectDir}/source") +endif() set(libDir "${CMAKE_SOURCE_DIR}/Engine/lib") set(srcDir "${CMAKE_SOURCE_DIR}/Engine/source") set(cmakeDir "${CMAKE_SOURCE_DIR}/Tools/CMake") @@ -281,12 +287,12 @@ set(TORQUE_STATIC ON) #option(TORQUE_STATIC "enables or disable static" OFF) if(WIN32) - # default disabled warnings: 4018;4100;4121;4127;4130;4244;4245;4389;4511;4512;4800; - set(TORQUE_CXX_FLAGS "/MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /arch:SSE2 /fp:fast /fp:except- /GR /Zc:wchar_t-" CACHE TYPE STRING) + set(TORQUE_DISABLED_WARNINGS " ") + set(TORQUE_CXX_FLAGS "/MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /arch:SSE2 /fp:fast /fp:except- /GR /Zc:wchar_t- /wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 /D_CRT_SECURE_NO_WARNINGS " CACHE TYPE STRING) mark_as_advanced(TORQUE_CXX_FLAGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}") - #set(CMAKE_EXE_LINKER_FLAGS "/OPT:NOREF") + set(CMAKE_EXE_LINKER_FLAGS "/LARGEADDRESSAWARE") #set(STATIC_LIBRARY_FLAGS "/OPT:NOREF") # Force static runtime libraries diff --git a/Tools/CMake/torque3d.cmake b/Tools/CMake/torque3d.cmake index 1e9fb9bf6..0f8b99435 100644 --- a/Tools/CMake/torque3d.cmake +++ b/Tools/CMake/torque3d.cmake @@ -84,14 +84,14 @@ mark_as_advanced(TORQUE_DEBUG_GFX_MODE) #option(DEBUG_SPEW "more debug" OFF) set(TORQUE_NO_DSO_GENERATION ON) -if(WIN32) - # warning C4800: 'XXX' : forcing value to bool 'true' or 'false' (performance warning) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4800") - # warning C4018: '<' : signed/unsigned mismatch - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4018") - # warning C4244: 'initializing' : conversion from 'XXX' to 'XXX', possible loss of data - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244") +# warning C4800: 'XXX' : forcing value to bool 'true' or 'false' (performance warning) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4800") +# warning C4018: '<' : signed/unsigned mismatch +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4018") +# warning C4244: 'initializing' : conversion from 'XXX' to 'XXX', possible loss of data +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244") +if(WIN32) link_directories($ENV{DXSDK_DIR}/Lib/x86) endif() From 808dcb653cb4c04a4d4c9e008ad962226c29dda3 Mon Sep 17 00:00:00 2001 From: LuisAntonRebollo Date: Wed, 28 May 2014 17:55:05 +0200 Subject: [PATCH 2/3] Remove TABs on CMake files. --- Tools/CMake/basics.cmake | 128 +++++++++++++++++++-------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/Tools/CMake/basics.cmake b/Tools/CMake/basics.cmake index 8a87fe1d2..43d7c4e5d 100644 --- a/Tools/CMake/basics.cmake +++ b/Tools/CMake/basics.cmake @@ -35,14 +35,14 @@ macro(addPath dir) ${dir}/*.h) LIST(APPEND ${PROJECT_NAME}_files "${tmpa}") LIST(APPEND ${PROJECT_NAME}_paths "${dir}") - #message(STATUS "addPath ${PROJECT_NAME} : ${tmpa}") + #message(STATUS "addPath ${PROJECT_NAME} : ${tmpa}") #set(t "${${t}};${tmpa}") endmacro() # adds a file to the sources macro(addFile filename) LIST(APPEND ${PROJECT_NAME}_files "${filename}") - #message(STATUS "addFile ${PROJECT_NAME} : ${filename}") + #message(STATUS "addFile ${PROJECT_NAME} : ${filename}") endmacro() # finds and adds sources files in a folder recursively @@ -55,7 +55,7 @@ macro(addPathRec dir) ${dir}/*.h) LIST(APPEND ${PROJECT_NAME}_files "${tmpa}") LIST(APPEND ${PROJECT_NAME}_paths "${dir}") - #message(STATUS "addPathRec ${PROJECT_NAME} : ${tmpa}") + #message(STATUS "addPathRec ${PROJECT_NAME} : ${tmpa}") endmacro() # adds a definition @@ -187,17 +187,17 @@ macro(generateFiltersSpecial relDir) string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR}) # do not have any ../ dirs string(REPLACE "../" "" SRCGR ${SRCGR}) - IF("${SRCGR}" MATCHES "^torque3d/My Projects/.*$") - string(REPLACE "torque3d/My Projects/${PROJECT_NAME}/" "" SRCGR ${SRCGR}) - string(REPLACE "/source" "" SRCGR ${SRCGR}) - endif() + IF("${SRCGR}" MATCHES "^torque3d/My Projects/.*$") + string(REPLACE "torque3d/My Projects/${PROJECT_NAME}/" "" SRCGR ${SRCGR}) + string(REPLACE "/source" "" SRCGR ${SRCGR}) + endif() # Source_group expects \\ (double antislash), not / (slash) string(REPLACE / \\ SRCGR ${SRCGR}) #STRING(REPLACE "//" "/" SRCGR ${SRCGR}) - IF(EXISTS "${f}" AND NOT IS_DIRECTORY "${f}") - #message(STATUS "FILE: ${f} -> ${SRCGR}") - source_group("${SRCGR}" FILES ${f}) - endif() + IF(EXISTS "${f}" AND NOT IS_DIRECTORY "${f}") + #message(STATUS "FILE: ${f} -> ${SRCGR}") + source_group("${SRCGR}" FILES ${f}) + endif() endforeach() endmacro() # macro to add a static library @@ -216,11 +216,11 @@ macro(addStaticLib) endif() endforeach() generateFilters("${firstDir}") - if(TORQUE_STATIC) - add_library("${PROJECT_NAME}" STATIC ${${PROJECT_NAME}_files}) - else() - add_library("${PROJECT_NAME}" SHARED ${${PROJECT_NAME}_files}) - endif() + if(TORQUE_STATIC) + add_library("${PROJECT_NAME}" STATIC ${${PROJECT_NAME}_files}) + else() + add_library("${PROJECT_NAME}" SHARED ${${PROJECT_NAME}_files}) + endif() # omg - only use the first folder ... otehrwise we get lots of header name collisions #foreach(dir ${${PROJECT_NAME}_paths}) addInclude("${firstDir}") @@ -251,36 +251,36 @@ macro(addExecutable) endmacro() macro(setupVersionNumbers) - set(TORQUE_APP_VERSION_MAJOR 1 CACHE INTEGER "") - set(TORQUE_APP_VERSION_MINOR 0 CACHE INTEGER "") - set(TORQUE_APP_VERSION_PATCH 0 CACHE INTEGER "") - set(TORQUE_APP_VERSION_TWEAK 0 CACHE INTEGER "") - mark_as_advanced(TORQUE_APP_VERSION_TWEAK) - MATH(EXPR TORQUE_APP_VERSION "${TORQUE_APP_VERSION_MAJOR} * 1000 + ${TORQUE_APP_VERSION_MINOR} * 100 + ${TORQUE_APP_VERSION_PATCH} * 10 + ${TORQUE_APP_VERSION_TWEAK}") - set(TORQUE_APP_VERSION_STRING "${TORQUE_APP_VERSION_MAJOR}.${TORQUE_APP_VERSION_MINOR}.${TORQUE_APP_VERSION_PATCH}.${TORQUE_APP_VERSION_TWEAK}") - #message(STATUS "version numbers: ${TORQUE_APP_VERSION} / ${TORQUE_APP_VERSION_STRING}") + set(TORQUE_APP_VERSION_MAJOR 1 CACHE INTEGER "") + set(TORQUE_APP_VERSION_MINOR 0 CACHE INTEGER "") + set(TORQUE_APP_VERSION_PATCH 0 CACHE INTEGER "") + set(TORQUE_APP_VERSION_TWEAK 0 CACHE INTEGER "") + mark_as_advanced(TORQUE_APP_VERSION_TWEAK) + MATH(EXPR TORQUE_APP_VERSION "${TORQUE_APP_VERSION_MAJOR} * 1000 + ${TORQUE_APP_VERSION_MINOR} * 100 + ${TORQUE_APP_VERSION_PATCH} * 10 + ${TORQUE_APP_VERSION_TWEAK}") + set(TORQUE_APP_VERSION_STRING "${TORQUE_APP_VERSION_MAJOR}.${TORQUE_APP_VERSION_MINOR}.${TORQUE_APP_VERSION_PATCH}.${TORQUE_APP_VERSION_TWEAK}") + #message(STATUS "version numbers: ${TORQUE_APP_VERSION} / ${TORQUE_APP_VERSION_STRING}") endmacro() macro(setupPackaging) - INCLUDE(CPack) - # only enable zips for now - set(CPACK_BINARY_NSIS OFF CACHE INTERNAL "" FORCE) - set(CPACK_BINARY_ZIP ON CACHE INTERNAL "" FORCE) - set(CPACK_SOURCE_ZIP OFF CACHE INTERNAL "" FORCE) - SET(CPACK_GENERATOR "ZIP") - SET(CPACK_PACKAGE_VENDOR "${PROJECT_NAME}") - SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME}") - SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1) - SET(CPACK_OUTPUT_FILE_PREFIX "${projectDir}/packages/${PROJECT_NAME}") - SET(CPACK_PACKAGE_INSTALL_DIRECTORY "") - #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt") - #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") - SET(CPACK_PACKAGE_VERSION_MAJOR "${TORQUE_APP_VERSION_MAJOR}") - SET(CPACK_PACKAGE_VERSION_MINOR "${TORQUE_APP_VERSION_MINOR}") - SET(CPACK_PACKAGE_VERSION_PATCH "${TORQUE_APP_VERSION_PATCH}") - #SET(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}") - SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${TORQUE_APP_VERSION_STRING}") - #SET(CPACK_SOURCE_STRIP_FILES "") + INCLUDE(CPack) + # only enable zips for now + set(CPACK_BINARY_NSIS OFF CACHE INTERNAL "" FORCE) + set(CPACK_BINARY_ZIP ON CACHE INTERNAL "" FORCE) + set(CPACK_SOURCE_ZIP OFF CACHE INTERNAL "" FORCE) + SET(CPACK_GENERATOR "ZIP") + SET(CPACK_PACKAGE_VENDOR "${PROJECT_NAME}") + SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "${PROJECT_NAME}") + SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1) + SET(CPACK_OUTPUT_FILE_PREFIX "${projectDir}/packages/${PROJECT_NAME}") + SET(CPACK_PACKAGE_INSTALL_DIRECTORY "") + #SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/ReadMe.txt") + #SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt") + SET(CPACK_PACKAGE_VERSION_MAJOR "${TORQUE_APP_VERSION_MAJOR}") + SET(CPACK_PACKAGE_VERSION_MINOR "${TORQUE_APP_VERSION_MINOR}") + SET(CPACK_PACKAGE_VERSION_PATCH "${TORQUE_APP_VERSION_PATCH}") + #SET(CPACK_PACKAGE_EXECUTABLES "${PROJECT_NAME}" "${PROJECT_NAME}") + SET(CPACK_SOURCE_PACKAGE_FILE_NAME "${PROJECT_NAME}-${TORQUE_APP_VERSION_STRING}") + #SET(CPACK_SOURCE_STRIP_FILES "") endmacro() # always static for now set(TORQUE_STATIC ON) @@ -289,36 +289,36 @@ set(TORQUE_STATIC ON) if(WIN32) set(TORQUE_DISABLED_WARNINGS " ") set(TORQUE_CXX_FLAGS "/MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /arch:SSE2 /fp:fast /fp:except- /GR /Zc:wchar_t- /wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 /D_CRT_SECURE_NO_WARNINGS " CACHE TYPE STRING) - mark_as_advanced(TORQUE_CXX_FLAGS) + mark_as_advanced(TORQUE_CXX_FLAGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "/LARGEADDRESSAWARE") #set(STATIC_LIBRARY_FLAGS "/OPT:NOREF") # Force static runtime libraries - if(TORQUE_STATIC) - FOREACH(flag - CMAKE_C_FLAGS_RELEASE - CMAKE_C_FLAGS_RELWITHDEBINFO - CMAKE_C_FLAGS_DEBUG - CMAKE_C_FLAGS_DEBUG_INIT - CMAKE_CXX_FLAGS_RELEASE - CMAKE_CXX_FLAGS_RELWITHDEBINFO - CMAKE_CXX_FLAGS_DEBUG - CMAKE_CXX_FLAGS_DEBUG_INIT) - STRING(REPLACE "/MD" "/MT" "${flag}" "${${flag}}") - SET("${flag}" "${${flag}} /EHsc") - ENDFOREACH() - endif() + if(TORQUE_STATIC) + FOREACH(flag + CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_RELWITHDEBINFO + CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_DEBUG_INIT + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_RELWITHDEBINFO + CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_DEBUG_INIT) + STRING(REPLACE "/MD" "/MT" "${flag}" "${${flag}}") + SET("${flag}" "${${flag}} /EHsc") + ENDFOREACH() + endif() endif() # fix the debug/release subfolders on windows if(MSVC) - FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) - # Go uppercase (DEBUG, RELEASE...) - STRING(TOUPPER "${CONF}" CONF) - #SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}") - SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}") - ENDFOREACH() + FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) + # Go uppercase (DEBUG, RELEASE...) + STRING(TOUPPER "${CONF}" CONF) + #SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}") + SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${projectOutDir}") + ENDFOREACH() endif() From efa3c02291ec450939cb361315995299001011f4 Mon Sep 17 00:00:00 2001 From: LuisAntonRebollo Date: Wed, 28 May 2014 19:21:12 +0200 Subject: [PATCH 3/3] CMake: Remove unsused variable, and revert a small change. --- Tools/CMake/basics.cmake | 1 - Tools/CMake/torque3d.cmake | 14 +++++++------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Tools/CMake/basics.cmake b/Tools/CMake/basics.cmake index 43d7c4e5d..1903efc2f 100644 --- a/Tools/CMake/basics.cmake +++ b/Tools/CMake/basics.cmake @@ -287,7 +287,6 @@ set(TORQUE_STATIC ON) #option(TORQUE_STATIC "enables or disable static" OFF) if(WIN32) - set(TORQUE_DISABLED_WARNINGS " ") set(TORQUE_CXX_FLAGS "/MP /O2 /Ob2 /Oi /Ot /Oy /GT /Zi /W4 /nologo /GF /EHsc /GS- /Gy- /Qpar- /arch:SSE2 /fp:fast /fp:except- /GR /Zc:wchar_t- /wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 /D_CRT_SECURE_NO_WARNINGS " CACHE TYPE STRING) mark_as_advanced(TORQUE_CXX_FLAGS) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS}") diff --git a/Tools/CMake/torque3d.cmake b/Tools/CMake/torque3d.cmake index 0f8b99435..1e9fb9bf6 100644 --- a/Tools/CMake/torque3d.cmake +++ b/Tools/CMake/torque3d.cmake @@ -84,14 +84,14 @@ mark_as_advanced(TORQUE_DEBUG_GFX_MODE) #option(DEBUG_SPEW "more debug" OFF) set(TORQUE_NO_DSO_GENERATION ON) -# warning C4800: 'XXX' : forcing value to bool 'true' or 'false' (performance warning) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4800") -# warning C4018: '<' : signed/unsigned mismatch -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4018") -# warning C4244: 'initializing' : conversion from 'XXX' to 'XXX', possible loss of data -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244") - if(WIN32) + # warning C4800: 'XXX' : forcing value to bool 'true' or 'false' (performance warning) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4800") + # warning C4018: '<' : signed/unsigned mismatch + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4018") + # warning C4244: 'initializing' : conversion from 'XXX' to 'XXX', possible loss of data + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -wd4244") + link_directories($ENV{DXSDK_DIR}/Lib/x86) endif()