123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512 |
- # -----------------------------------------------------------------------------
- # Copyright (c) 2014 GarageGames, LLC
- #
- # Permission is hereby granted, free of charge, to any person obtaining a copy
- # of this software and associated documentation files (the "Software"), to
- # deal in the Software without restriction, including without limitation the
- # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
- # sell copies of the Software, and to permit persons to whom the Software is
- # furnished to do so, subject to the following conditions:
- #
- # The above copyright notice and this permission notice shall be included in
- # all copies or substantial portions of the Software.
- #
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- # IN THE SOFTWARE.
- # -----------------------------------------------------------------------------
- project("Torque3DEngine")
- # Detect 32bit and 64bit x86/ARM
- if (CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
- if( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8 )
- set( TORQUE_CPU_ARM64 ON )
- elseif( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 4 )
- set( TORQUE_CPU_ARM32 ON )
- endif()
- else()
- if( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 8 )
- set( TORQUE_CPU_X64 ON )
- elseif( CMAKE_CXX_SIZEOF_DATA_PTR EQUAL 4 )
- set( TORQUE_CPU_X32 ON )
- endif()
- endif()
- if(NOT TORQUE_TEMPLATE)
- set(TORQUE_TEMPLATE "BaseGame" CACHE STRING "the template to use")
- endif()
- if(NOT TORQUE_APP_DIR)
- set(TORQUE_APP_DIR "${CMAKE_SOURCE_DIR}/My Projects/${TORQUE_APP_NAME}" CACHE STRING "final installation location")
- endif()
- if(NOT projectOutDir)
- set(projectOutDir "${TORQUE_APP_DIR}/game")
- endif()
- if(NOT projectSrcDir)
- set(projectSrcDir "${TORQUE_APP_DIR}/source")
- endif()
- set(libDir "${CMAKE_SOURCE_DIR}/Engine/lib")
- set(srcDir "${CMAKE_SOURCE_DIR}/Engine/source")
- set(cmakeDir "${CMAKE_SOURCE_DIR}/Tools/CMake")
- # hide some things
- mark_as_advanced(CMAKE_INSTALL_PREFIX)
- mark_as_advanced(CMAKE_CONFIGURATION_TYPES)
- # output folders
- #set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${projectOutDir}/game)
- #set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${projectOutDir}/game)
- #set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${projectOutDir}/game)
- ###############################################################################
- ### Source File Handling
- ###############################################################################
- # finds and adds sources files in a folder
- macro(addPath dir)
- set(tmp_files "")
- set(glob_config GLOB)
- if(${ARGC} GREATER 1 AND "${ARGV1}" STREQUAL "REC")
- set(glob_config GLOB_RECURSE)
- endif()
- set(mac_files "")
- if(APPLE)
- set(mac_files ${dir}/*.mm ${dir}/*.m)
- endif()
- file(${glob_config} tmp_files
- ${dir}/*.cpp
- ${dir}/*.c
- ${dir}/*.cc
- ${dir}/*.h
- ${mac_files}
- #${dir}/*.asm
- )
- foreach(entry ${BLACKLIST})
- list(REMOVE_ITEM tmp_files ${dir}/${entry})
- endforeach()
- LIST(APPEND ${PROJECT_NAME}_files "${tmp_files}")
- LIST(APPEND ${PROJECT_NAME}_paths "${dir}")
- #message(STATUS "addPath ${PROJECT_NAME} : ${tmp_files}")
- endmacro()
- # adds a file to the sources
- macro(addFile filename)
- LIST(APPEND ${PROJECT_NAME}_files "${filename}")
- #message(STATUS "addFile ${PROJECT_NAME} : ${filename}")
- endmacro()
- # finds and adds sources files in a folder recursively
- macro(addPathRec dir)
- addPath("${dir}" "REC")
- endmacro()
- ###############################################################################
- ### Gameplay Modules Lib Check
- ###############################################################################
- macro(subDirCmake result curdir)
- file(GLOB children RELATIVE ${curdir} ${curdir}/*)
- set(dirList "")
- foreach(child ${children})
- if(IS_DIRECTORY ${curdir}/${child})
- LIST(APPEND dirList ${curdir}/${child})
- endif()
- endforeach()
- set(${result} ${dirList})
- endmacro()
- ###############################################################################
- ### Definition Handling
- ###############################################################################
- macro(__addDef def config)
- # two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
- 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})
- else()
- set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:${config}>:${def}>)
- endif()
- else()
- 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()
- # adds a definition: argument 1: Nothing(for all), _DEBUG, _RELEASE, <more build configurations>
- macro(addDef def)
- set(def_configs "")
- if(${ARGC} GREATER 1)
- foreach(config ${ARGN})
- __addDef(${def} ${config})
- endforeach()
- else()
- __addDef(${def} "")
- endif()
- 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}: ${${PROJECT_NAME}_defs_}")
- endif()
- endmacro()
- ###############################################################################
- ### Source Library Handling
- ###############################################################################
- macro(addLibSrc libPath)
- set(cached_project_name ${PROJECT_NAME})
- include(${libPath})
- project(${cached_project_name})
- endmacro()
- ###############################################################################
- ### Linked Library Handling
- ###############################################################################
- macro(addLib libs)
- foreach(lib ${libs})
- # check if we can build it ourselfs
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
- addLibSrc("${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
- endif()
- # then link against it
- # two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
- if(TARGET ${PROJECT_NAME})
- target_link_libraries(${PROJECT_NAME} "${lib}")
- else()
- list(APPEND ${PROJECT_NAME}_libs ${lib})
- endif()
- endforeach()
- endmacro()
- #addLibRelease will add to only release builds
- macro(addLibRelease libs)
- foreach(lib ${libs})
- # check if we can build it ourselfs
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
- addLibSrc("${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
- endif()
- # then link against it
- # two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
- if(TARGET ${PROJECT_NAME})
- target_link_libraries(${PROJECT_NAME} optimized "${lib}")
- else()
- list(APPEND ${PROJECT_NAME}_libsRelease ${lib})
- endif()
- endforeach()
- endmacro()
- #addLibDebug will add to only debug builds
- macro(addLibDebug libs)
- foreach(lib ${libs})
- # check if we can build it ourselfs
- if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
- addLibSrc("${CMAKE_CURRENT_SOURCE_DIR}/libraries/${lib}.cmake")
- endif()
- # then link against it
- # two possibilities: a) target already known, so add it directly, or b) target not yet known, so add it to its cache
- if(TARGET ${PROJECT_NAME})
- target_link_libraries(${PROJECT_NAME} debug "${lib}")
- else()
- list(APPEND ${PROJECT_NAME}_libsDebug ${lib})
- endif()
- endforeach()
- endmacro()
- # this applies cached definitions onto the target
- macro(_process_libs)
- if(DEFINED ${PROJECT_NAME}_libs)
- target_link_libraries(${PROJECT_NAME} "${${PROJECT_NAME}_libs}")
- endif()
- if(DEFINED ${PROJECT_NAME}_libsRelease)
- target_link_libraries(${PROJECT_NAME} optimized "${${PROJECT_NAME}_libsRelease}")
- endif()
- if(DEFINED ${PROJECT_NAME}_libsDebug)
- target_link_libraries(${PROJECT_NAME} debug "${${PROJECT_NAME}_libsDebug}")
- endif()
- endmacro()
- # apple frameworks
- macro(addFramework framework)
- if (APPLE)
- addLib("-framework ${framework}")
- endif()
- endmacro()
- ###############################################################################
- ### Include Handling
- ###############################################################################
- macro(addInclude incPath)
- if(TARGET ${PROJECT_NAME})
- set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INCLUDE_DIRECTORIES "${incPath}")
- else()
- list(APPEND ${PROJECT_NAME}_includes ${incPath})
- endif()
- endmacro()
- # this applies cached definitions onto the target
- macro(_process_includes)
- if(DEFINED ${PROJECT_NAME}_includes)
- set_property(TARGET ${PROJECT_NAME} APPEND PROPERTY INCLUDE_DIRECTORIES "${${PROJECT_NAME}_includes}")
- endif()
- endmacro()
- ###############################################################################
- macro(_postTargetProcess)
- _process_includes()
- _process_defs()
- _process_libs()
- endmacro()
- # adds a path to search for libs
- macro(addLibPath dir)
- link_directories(${dir})
- endmacro()
- # creates a proper filter for VS
- macro(generateFilters relDir)
- foreach(f ${${PROJECT_NAME}_files})
- # Get the path of the file relative to ${DIRECTORY},
- # then alter it (not compulsory)
- file(RELATIVE_PATH SRCGR ${relDir} ${f})
- set(SRCGR "${PROJECT_NAME}/${SRCGR}")
- # Extract the folder, ie remove the filename part
- string(REGEX REPLACE "(.*)(/[^/]*)$" "\\1" SRCGR ${SRCGR})
- # do not have any ../ dirs
- string(REPLACE "../" "" SRCGR ${SRCGR})
- # Source_group expects \\ (double antislash), not / (slash)
- string(REPLACE / \\ SRCGR ${SRCGR})
- #STRING(REPLACE "//" "/" SRCGR ${SRCGR})
- #message(STATUS "FILE: ${f} -> ${SRCGR}")
- source_group("${SRCGR}" FILES ${f})
- endforeach()
- endmacro()
- # creates a proper filter for VS
- macro(generateFiltersSpecial relDir)
- foreach(f ${${PROJECT_NAME}_files})
- # Get the path of the file relative to ${DIRECTORY},
- # then alter it (not compulsory)
- file(RELATIVE_PATH SRCGR ${relDir} ${f})
- set(SRCGR "torque3d/${SRCGR}")
- # Extract the folder, ie remove the filename part
- 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()
- # 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()
- endforeach()
- endmacro()
- # macro to add a static library
- macro(finishLibrary)
- # more paths?
- if(${ARGC} GREATER 0)
- foreach(dir ${ARGV0})
- addPath("${dir}")
- endforeach()
- endif()
- # now inspect the paths we got
- set(firstDir "")
- foreach(dir ${${PROJECT_NAME}_paths})
- if("${firstDir}" STREQUAL "")
- set(firstDir "${dir}")
- endif()
- endforeach()
- generateFilters("${firstDir}")
- # set per target compile flags
- if(TORQUE_CXX_FLAGS_${PROJECT_NAME})
- set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_${PROJECT_NAME}}")
- else()
- set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_LIBS}")
- endif()
- if(TORQUE_STATIC)
- add_library("${PROJECT_NAME}" STATIC ${${PROJECT_NAME}_files})
- else()
- add_library("${PROJECT_NAME}" SHARED ${${PROJECT_NAME}_files})
- endif()
- target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11)
- # omg - only use the first folder ... otherwise we get lots of header name collisions
- #foreach(dir ${${PROJECT_NAME}_paths})
- addInclude("${firstDir}")
- #endforeach()
- _postTargetProcess()
- #set the folder property name
- set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER ${TORQUE_LIBS_FOLDER_NAME})
- endmacro()
- # macro to add an executable
- macro(finishExecutable)
- # now inspect the paths we got
- set(firstDir "")
- foreach(dir ${${PROJECT_NAME}_paths})
- if("${firstDir}" STREQUAL "")
- set(firstDir "${dir}")
- endif()
- endforeach()
- generateFiltersSpecial("${firstDir}")
- # set per target compile flags
- if(TORQUE_CXX_FLAGS_${PROJECT_NAME})
- set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_${PROJECT_NAME}}")
- else()
- set_source_files_properties(${${PROJECT_NAME}_files} PROPERTIES COMPILE_FLAGS "${TORQUE_CXX_FLAGS_EXECUTABLES}")
- endif()
- if (APPLE)
- set(ICON_FILE "${projectSrcDir}/torque.icns")
- set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources")
- add_executable("${PROJECT_NAME}" MACOSX_BUNDLE ${ICON_FILE} ${${PROJECT_NAME}_files})
- else()
- add_executable("${PROJECT_NAME}" WIN32 ${${PROJECT_NAME}_files})
- endif()
- # Torque requires c++20
- target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
- addInclude("${firstDir}")
- _postTargetProcess()
- endmacro()
- macro(setupVersionNumbers)
- set(TORQUE_APP_VERSION_MAJOR 1 CACHE STRING "")
- set(TORQUE_APP_VERSION_MINOR 0 CACHE STRING "")
- set(TORQUE_APP_VERSION_PATCH 0 CACHE STRING "")
- set(TORQUE_APP_VERSION_TWEAK 0 CACHE STRING "")
- 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 "${TORQUE_APP_DIR}/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)
- #option(TORQUE_STATIC "enables or disable static" OFF)
- if(WIN32)
- set(TORQUE_CXX_FLAGS_EXECUTABLES "/wd4018 /wd4100 /wd4121 /wd4127 /wd4130 /wd4244 /wd4245 /wd4389 /wd4511 /wd4512 /wd4800 /wd4995 " CACHE STRING "")
- mark_as_advanced(TORQUE_CXX_FLAGS_EXECUTABLES)
- set(TORQUE_CXX_FLAGS_LIBS "/W0" CACHE STRING "")
- mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)
- 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:precise /fp:except- /GR /Zc:wchar_t-" )
- if( TORQUE_CPU_X32 )
- 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 STRING "")
- mark_as_advanced(TORQUE_CXX_FLAGS_COMMON)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORQUE_CXX_FLAGS_COMMON}")
- 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()
- else()
- if(${CMAKE_VERSION} VERSION_LESS "3.16.0")
- macro(CHECK_OBJC_SOURCE_COMPILES SOURCE VAR)
- set(PREV_REQUIRED_DEFS "${CMAKE_REQUIRED_DEFINITIONS}")
- set(CMAKE_REQUIRED_DEFINITIONS "-x objective-c ${PREV_REQUIRED_DEFS}")
- CHECK_C_SOURCE_COMPILES(${SOURCE} ${VAR})
- set(CMAKE_REQUIRED_DEFINITIONS "${PREV_REQUIRED_DEFS}")
- endmacro()
- else()
- include(CheckOBJCSourceCompiles)
- if (APPLE)
- enable_language(OBJC)
- endif()
- endif()
- # TODO: improve default settings on other platforms
- set(TORQUE_CXX_FLAGS_EXECUTABLES "" CACHE STRING "")
- mark_as_advanced(TORQUE_CXX_FLAGS_EXECUTABLES)
- set(TORQUE_CXX_FLAGS_LIBS "" CACHE STRING "")
- mark_as_advanced(TORQUE_CXX_FLAGS_LIBS)
- set(TORQUE_CXX_FLAGS_COMMON "" CACHE 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}")
- endif()
- if(UNIX)
- SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${projectOutDir}")
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${projectOutDir}")
- SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${projectOutDir}")
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG "${projectOutDir}")
- SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${projectOutDir}")
- set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE "${projectOutDir}")
- endif()
- # fix the debug/release subfolders on windows
- if(MSVC)
- SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY" "${projectOutDir}")
- 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()
|