|
@@ -2,9 +2,15 @@ project("Torque3DEngine")
|
|
|
|
|
|
set(TORQUE_TEMPLATE "Full" CACHE STRING "the template to use")
|
|
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(libDir "${CMAKE_SOURCE_DIR}/Engine/lib")
|
|
set(srcDir "${CMAKE_SOURCE_DIR}/Engine/source")
|
|
set(srcDir "${CMAKE_SOURCE_DIR}/Engine/source")
|
|
set(cmakeDir "${CMAKE_SOURCE_DIR}/Tools/CMake")
|
|
set(cmakeDir "${CMAKE_SOURCE_DIR}/Tools/CMake")
|
|
@@ -29,14 +35,14 @@ macro(addPath dir)
|
|
${dir}/*.h)
|
|
${dir}/*.h)
|
|
LIST(APPEND ${PROJECT_NAME}_files "${tmpa}")
|
|
LIST(APPEND ${PROJECT_NAME}_files "${tmpa}")
|
|
LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
|
|
LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
|
|
- #message(STATUS "addPath ${PROJECT_NAME} : ${tmpa}")
|
|
|
|
|
|
+ #message(STATUS "addPath ${PROJECT_NAME} : ${tmpa}")
|
|
#set(t "${${t}};${tmpa}")
|
|
#set(t "${${t}};${tmpa}")
|
|
endmacro()
|
|
endmacro()
|
|
|
|
|
|
# adds a file to the sources
|
|
# adds a file to the sources
|
|
macro(addFile filename)
|
|
macro(addFile filename)
|
|
LIST(APPEND ${PROJECT_NAME}_files "${filename}")
|
|
LIST(APPEND ${PROJECT_NAME}_files "${filename}")
|
|
- #message(STATUS "addFile ${PROJECT_NAME} : ${filename}")
|
|
|
|
|
|
+ #message(STATUS "addFile ${PROJECT_NAME} : ${filename}")
|
|
endmacro()
|
|
endmacro()
|
|
|
|
|
|
# finds and adds sources files in a folder recursively
|
|
# finds and adds sources files in a folder recursively
|
|
@@ -49,7 +55,7 @@ macro(addPathRec dir)
|
|
${dir}/*.h)
|
|
${dir}/*.h)
|
|
LIST(APPEND ${PROJECT_NAME}_files "${tmpa}")
|
|
LIST(APPEND ${PROJECT_NAME}_files "${tmpa}")
|
|
LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
|
|
LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
|
|
- #message(STATUS "addPathRec ${PROJECT_NAME} : ${tmpa}")
|
|
|
|
|
|
+ #message(STATUS "addPathRec ${PROJECT_NAME} : ${tmpa}")
|
|
endmacro()
|
|
endmacro()
|
|
|
|
|
|
# adds a definition
|
|
# adds a definition
|
|
@@ -181,17 +187,17 @@ macro(generateFiltersSpecial relDir)
|
|
string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR})
|
|
string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR})
|
|
# do not have any ../ dirs
|
|
# do not have any ../ dirs
|
|
string(REPLACE "../" "" SRCGR ${SRCGR})
|
|
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)
|
|
# Source_group expects \\ (double antislash), not / (slash)
|
|
string(REPLACE / \\ SRCGR ${SRCGR})
|
|
string(REPLACE / \\ SRCGR ${SRCGR})
|
|
#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()
|
|
endforeach()
|
|
endmacro()
|
|
endmacro()
|
|
# macro to add a static library
|
|
# macro to add a static library
|
|
@@ -210,11 +216,11 @@ macro(addStaticLib)
|
|
endif()
|
|
endif()
|
|
endforeach()
|
|
endforeach()
|
|
generateFilters("${firstDir}")
|
|
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
|
|
# omg - only use the first folder ... otehrwise we get lots of header name collisions
|
|
#foreach(dir ${${PROJECT_NAME}_paths})
|
|
#foreach(dir ${${PROJECT_NAME}_paths})
|
|
addInclude("${firstDir}")
|
|
addInclude("${firstDir}")
|
|
@@ -245,74 +251,73 @@ macro(addExecutable)
|
|
endmacro()
|
|
endmacro()
|
|
|
|
|
|
macro(setupVersionNumbers)
|
|
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()
|
|
endmacro()
|
|
|
|
|
|
macro(setupPackaging)
|
|
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()
|
|
endmacro()
|
|
# always static for now
|
|
# always static for now
|
|
set(TORQUE_STATIC ON)
|
|
set(TORQUE_STATIC ON)
|
|
#option(TORQUE_STATIC "enables or disable static" OFF)
|
|
#option(TORQUE_STATIC "enables or disable static" OFF)
|
|
|
|
|
|
if(WIN32)
|
|
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)
|
|
|
|
- mark_as_advanced(TORQUE_CXX_FLAGS)
|
|
|
|
|
|
+ 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_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS}")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_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")
|
|
#set(STATIC_LIBRARY_FLAGS "/OPT:NOREF")
|
|
|
|
|
|
# Force static runtime libraries
|
|
# 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()
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# fix the debug/release subfolders on windows
|
|
# fix the debug/release subfolders on windows
|
|
if(MSVC)
|
|
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()
|
|
endif()
|