Changeset 2621 for code/branches/buildsystem2/cmake
- Timestamp:
- Jan 29, 2009, 11:35:54 PM (15 years ago)
- Location:
- code/branches/buildsystem2/cmake
- Files:
-
- 1 deleted
- 5 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
code/branches/buildsystem2/cmake/BuildConfig.cmake
r2618 r2621 35 35 # Sets where to find the external libraries like OgreMain.dll at runtime 36 36 # On Unix you should not have to change this at all. 37 IF(NOT ORXONOX_ LIBRARY_BIN_DIR)38 SET(ORXONOX_ LIBRARY_BIN_DIR${CMAKE_RUNTIME_OUTPUT_DIRECTORY})39 ENDIF(NOT ORXONOX_ LIBRARY_BIN_DIR)37 IF(NOT ORXONOX_RUNTIME_LIBRARY_DIRECTORY) 38 SET(ORXONOX_RUNTIME_LIBRARY_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) 39 ENDIF(NOT ORXONOX_RUNTIME_LIBRARY_DIRECTORY) 40 40 41 41 # Set Debug build to default when not having multi-config generator like msvc … … 54 54 55 55 OPTION(EXTRA_WARNINGS "Enable some extra warnings (heavily pollutes the output)") 56 IF(EXTRA_WARNINGS)57 SET(ORXONOX_WARNING_FLAGS "-Wextra --Wno-unsued-parameter")58 ELSE(EXTRA_WARNINGS)59 SET(ORXONOX_WARNING_FLAGS "-Wall")60 ENDIF(EXTRA_WARNINGS)61 56 62 SET(ORXONOX_MEDIA_DIRECTORY "${CMAKE_SOURCE_DIR}/../media") 57 # Specify media directory 58 GET_FILENAME_COMPONENT(_media_path "${CMAKE_SOURCE_DIR}/../media" ABSOLUTE) 59 SET(ORXONOX_MEDIA_DIRECTORY ${_media_path} CACHE PATH 60 "Location of the media directory.") 61 IF(NOT EXISTS ${ORXONOX_MEDIA_DIRECTORY}) 62 MESSAGE(STATUS "Warning: The media directory does not exist ${ORXONOX_MEDIA_DIRECTORY}") 63 ENDIF(NOT EXISTS ${ORXONOX_MEDIA_DIRECTORY}) 64 63 65 # More plugins: Plugin_BSPSceneManager, Plugin_OctreeSceneManager 64 66 # Render systems may be optional, but at least one has to be found in FindOgre … … 78 80 79 81 ############## Compiler Config ################## 80 INCLUDE(BuildConfigGCC) 81 INCLUDE(BuildConfigMSVC) 82 # User can create his own file if required 83 IF(EXISTS ${CMAKE_BINARY_DIR}/BuildConfigUser.cmake) 84 INCLUDE(${CMAKE_BINARY_DIR}/BuildConfigUser) 85 ENDIF(EXISTS ${CMAKE_BINARY_DIR}/BuildConfigUser.cmake) 82 83 INCLUDE(FlagUtilities) 84 85 # Configure the compiler specific build options 86 IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC) 87 INCLUDE(BuildConfigGCC) 88 ELSEIF(MSVC) 89 INCLUDE(BuildConfigMSVC) 90 ELSE(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC) 91 MESSAGE(STATUS "Warning: Your compiler is not officially supported.") 92 ENDIF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUC) 93 94 SET(BUILD_CONFIG_USER_SCRIPT "" CACHE FILEPATH 95 "Specify a CMake script if you wish to write your own build config. 96 See BuildConfigGCC.cmake or BuildConfigMSVC.cmake for examples.") 97 IF(BUILD_CONFIG_USER_SCRIPT) 98 IF(EXISTS ${CMAKE_MODULE_PATH}/${BUILD_CONFIG_USER_SCRIPT}.cmake) 99 INCLUDE(${BUILD_CONFIG_USER_SCRIPT}) 100 ELSEIF(EXISTS ${BUILD_CONFIG_USER_SCRIPT}) 101 INCLUDE(${BUILD_CONFIG_USER_SCRIPT}) 102 ELSEIF(EXISTS ${CMAKE_MODULE_PATH}/${BUILD_CONFIG_USER_SCRIPT}) 103 INCLUDE(${CMAKE_MODULE_PATH}/${BUILD_CONFIG_USER_SCRIPT}) 104 ENDIF(EXISTS ${CMAKE_MODULE_PATH}/${BUILD_CONFIG_USER_SCRIPT}.cmake) 105 ENDIF(BUILD_CONFIG_USER_SCRIPT) 86 106 87 107 … … 97 117 98 118 99 ####### ############ Macros ######################119 ####### Static/Dynamic linking defines ########## 100 120 101 # Also define macros to easily extend the compiler flags 102 # Additional argument is a condition 103 MACRO(ADD_CXX_FLAGS _flag _cond) 104 IF(${_cond}) 105 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_flag}") 106 ENDIF(${_cond}) 107 ENDMACRO(ADD_CXX_FLAGS _flag) 108 MACRO(ADD_C_FLAGS _flag) 109 IF(${_cond}) 110 SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_flag}") 111 ENDIF(${_cond}) 112 ENDMACRO(ADD_C_FLAGS _flag) 121 # If no defines are specified, these libs get linked statically 122 ADD_COMPILER_FLAGS("-DBOOST_ALL_DYN_LINK" WIN32 LINK_BOOST_DYNAMIC) 123 ADD_COMPILER_FLAGS("-DENET_DLL" WIN32 LINK_ENET_DYNAMIC) 124 ADD_COMPILER_FLAGS("-DLUA_BUILD_AS_DLL" WIN32 LINK_LUA_DYNAMIC) 125 ADD_COMPILER_FLAGS("-DZLIB_DLL" WIN32 LINK_ZLIB_DYNAMIC) 126 127 # If no defines are specified, these libs get linked dynamically 128 # You can change that optionally in the Cache. 129 ADD_COMPILER_FLAGS("-DCEGUI_STATIC" WIN32 NOT LINK_CEGUI_DYNAMIC) 130 ADD_COMPILER_FLAGS("-DOGRE_STATIC_LIB" WIN32 NOT LINK_OGRE_DYNAMIC) 131 ADD_COMPILER_FLAGS("-DSTATIC_BUILD" WIN32 NOT LINK_TCL_DYNAMIC) -
code/branches/buildsystem2/cmake/BuildConfigGCC.cmake
r2612 r2621 26 26 # 27 27 28 ###### Default Compiler/Linker Options ########## 29 # Most people use GCC to compile orxonox, so use that as default 28 # Also include environment flags. Could cause conflicts though 29 SET_COMPILER_FLAGS("$ENV{CXXFLAGS}" CXX CACHE) 30 SET_COMPILER_FLAGS("$ENV{CFLAGS}" C CACHE) 30 31 31 SET(CMAKE_C_FLAGS "$ENV{CFLAGS} ${ORXONOX_WARNING_FLAGS} -fPIC") 32 SET(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} ${ORXONOX_WARNING_FLAGS} -fPIC") 33 # These flags are added to the flags above 34 SET(CMAKE_C_FLAGS_DEBUG " -g -ggdb") 35 SET(CMAKE_CXX_FLAGS_DEBUG " -g -ggdb") 36 SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG") 37 SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG") 38 SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb -DNDEBUG") 39 SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -ggdb -DNDEBUG") 40 SET(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG") 41 SET(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG") 32 # These flags get added to the flags above 33 SET_COMPILER_FLAGS(" -g -ggdb -D_DEBUG" Debug CACHE) 34 SET_COMPILER_FLAGS(" -DNDEBUG" ReleaseAll CACHE) 35 ADD_COMPILER_FLAGS("-O3" Release CACHE) 36 ADD_COMPILER_FLAGS("-O2 -g -ggdb" RelWithDebInfo CACHE) 37 ADD_COMPILER_FLAGS("-Os" MinSizeRel CACHE) 42 38 43 SET(CMAKE_LD_FLAGS "$ENV{LDFLAGS}") 44 SET(CMAKE_EXE_LINKER_FLAGS " --no-undefined") 45 SET(CMAKE_SHARED_LINKER_FLAGS " --no-undefined") 46 SET(CMAKE_MODULE_LINKER_FLAGS " --no-undefined") 39 # CMake doesn't seem to set the PIC flags right on certain 64 bit systems 40 IF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") 41 ADD_COMPILER_FLAGS("-fPIC" CACHE) 42 ENDIF(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") 43 44 # Increase warning level if requested 45 IF(EXTRA_WARNINGS) 46 REMOVE_COMPILER_FLAGS("-Wall" CACHE) 47 ADD_COMPILER_FLAGS("-Wextra --Wno-unused-parameter" CACHE) 48 ELSE(EXTRA_WARNINGS) 49 REMOVE_COMPILER_FLAGS("-Wextra --Wno-unused-parameter" CACHE) 50 ADD_COMPILER_FLAGS("-Wall" CACHE) 51 ENDIF(EXTRA_WARNINGS) 52 53 # General linker flags 54 SET_LINKER_FLAGS("--no-undefined" CACHE) -
code/branches/buildsystem2/cmake/BuildConfigMSVC.cmake
r2612 r2621 25 25 # ... 26 26 # 27 28 ###################### MSVC config ########################29 # Set the library directories and special options when30 # using Visual Studio.31 ###########################################################32 27 33 IF (MSVC) 28 #################### Compiler Flags ##################### 34 29 35 #################### Compiler Flags ##################### 30 # -MD Minimal Rebuild 31 # -RTC1 Both basic runtime checks 32 # -MD[d] Multithreaded [debug] DLL 33 # -Zi Program Database 34 # -ZI Program Database for Edit & Continue 35 # -WX General warning Level X 36 # -wdX Disable specific warning X 37 # -wnX Set warning level of specific warning X to level n 36 38 37 # /MD Minimal Rebuild 38 # /RTC1 Both basic runtime checks 39 # /MD[d] Multithreaded [debug] DLL 40 # /Zi Program Database 41 # /ZI Program Database for Edit & Continue 42 # /WX Warning Level X 43 # /wdX Disable specific warning X 44 SET(MSVC_CL_FLAGS " 45 /D WIN32 /D __WIN32__ /D _WIN32 /D _WINDOWS 46 /D BOOST_ALL_DYN_LINK 47 /D OIS_DYNAMIC_LIB 48 /D ZLIB_WINAPI 49 /D LUA_BUILD_AS_DLL 50 /D _CRT_SECURE_NO_WARNINGS 51 /W3 52 /EHsc 53 /wd4522 54 /wd4251 55 /wd4800 56 ") 57 SET(CMAKE_C_FLAGS "${MSVC_CL_FLAGS}") 58 SET(CMAKE_CXX_FLAGS "${MSVC_CL_FLAGS}") 39 # Overwrite CMake default flags first. Be careful with this 40 # Only add (not set) the general compiler flags. 41 # CMake default flags : -DWIN32 -D_WINDOWS -W3 -Zm1000 42 # additionally for CXX: -EHsc -GR 43 ADD_COMPILER_FLAGS("-D__WIN32__ -D_WIN32" CACHE) 44 ADD_COMPILER_FLAGS("-D_CRT_SECURE_NO_WARNINGS" CACHE) 45 ADD_COMPILER_FLAGS("-DUNICODE -D_UNICODE" CACHE) 46 ADD_COMPILER_FLAGS("-w44522 -w44251 -w44800" CACHE) 59 47 60 # Note: ${CMAKE_C_FLAGS} get added to the specific ones 61 SET(MSVC_CL_FLAGS_DEBUG "/MDd /Od /Zi /Gm /RTC1") 62 SET(MSVC_CL_FLAGS_RELEASE "/MD /MP2 /D TOLUA_RELEASE") 63 SET(CMAKE_C_FLAGS_DEBUG "${MSVC_CL_FLAGS_DEBUG}") 64 SET(CMAKE_CXX_FLAGS_DEBUG "${MSVC_CL_FLAGS_DEBUG}") 65 SET(CMAKE_C_FLAGS_RELEASE "${MSVC_CL_FLAGS_RELEASE} /O2") 66 SET(CMAKE_CXX_FLAGS_RELEASE "${MSVC_CL_FLAGS_RELEASE} /O2") 67 SET(CMAKE_C_FLAGS_RELWITHDEBINFO "${MSVC_CL_FLAGS_RELEASE} /O2 /Zi") 68 SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${MSVC_CL_FLAGS_RELEASE} /O2 /Zi") 69 SET(CMAKE_C_FLAGS_MINSIZEREL "${MSVC_CL_FLAGS_RELEASE} /O1") 70 SET(CMAKE_CXX_FLAGS_MINSIZEREL "${MSVC_CL_FLAGS_RELEASE} /O1") 48 # Increase warning level if requested 49 IF(EXTRA_WARNINGS) 50 REMOVE_COMPILER_FLAGS("-W1 -W2 -W3" CACHE) 51 ADD_COMPILER_FLAGS ("-W4" CACHE) 52 ELSE(EXTRA_WARNINGS) 53 REMOVE_COMPILER_FLAGS("-W1 -W2 -W4" CACHE) 54 ADD_COMPILER_FLAGS ("-W3" CACHE) 55 ENDIF(EXTRA_WARNINGS) 71 56 72 ##################### Linker Flags ###################### 57 # Overwrite CMake default flags here. 58 SET_COMPILER_FLAGS("-MDd -Od -ZI -D_DEBUG -Gm -RTC1" Debug CACHE) 59 SET_COMPILER_FLAGS("-MD -O2 -DNDEBUG -MP2" Release CACHE) 60 SET_COMPILER_FLAGS("-MD -O2 -Zi -DNDEBUG" RelWithDebInfo CACHE) 61 SET_COMPILER_FLAGS("-MD -O1 -DNDEBUG -MP2" MinSizeRel CACHE) 73 62 74 SET(MSVC_LINKER_FLAGS "") 75 SET(CMAKE_EXE_LINKER_FLAGS "${MSVC_LINKER_FLAGS}") 76 SET(CMAKE_SHARED_LINKER_FLAGS "${MSVC_LINKER_FLAGS}") 63 ##################### Linker Flags ###################### 77 64 78 # Note: ${CMAKE_EXE_LINKER_FLAGS} get added to the specific ones 79 SET(MSVC_LINKER_FLAGS_DEBUG "/INCREMENTAL:YES") 80 SET(MSVC_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /OPT:REF /OPT:ICF") 81 SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "${MSVC_LINKER_FLAGS_DEBUG}") 82 SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "${MSVC_LINKER_FLAGS_DEBUG}") 83 SET(CMAKE_EXE_LINKER_FLAGS_RELEASE "${MSVC_LINKER_FLAGS_RELEASE}") 84 SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${MSVC_LINKER_FLAGS_RELEASE}") 85 SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "${MSVC_LINKER_FLAGS_RELEASE}") 86 SET(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${MSVC_LINKER_FLAGS_RELEASE}") 87 SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL "${MSVC_LINKER_FLAGS_RELEASE}") 88 SET(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL "${MSVC_LINKER_FLAGS_RELEASE}") 89 90 ENDIF (MSVC) 65 # CMake default flags: -MANIFEST -STACK:10000000 -machine:I386 66 # and INCREMENTAL and DEBUG for debug versions 67 ADD_LINKER_FLAGS("-OPT:REF -OPT:ICF -OPT:NOWIN98" Release MinSizeRel CACHE) -
code/branches/buildsystem2/cmake/GenerateToluaBindings.cmake
r2618 r2621 16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA 17 17 18 MACRO(TOLUA _tolua_package _tolua_srcfiles_varname) 19 # TODO: cleaner arguments handling 18 FUNCTION(GENERATE_TOLUA_BINDINGS _tolua_package _target_source_files) 20 19 SET(_tolua_inputfiles ${ARGN}) 21 20 LIST(REMOVE_ITEM _tolua_inputfiles "INPUTFILES") … … 24 23 SET(_tolua_cxxfile "${CMAKE_CURRENT_BINARY_DIR}/ToluaBind${_tolua_package}.cc") 25 24 SET(_tolua_hfile "${CMAKE_CURRENT_BINARY_DIR}/ToluaBind${_tolua_package}.h") 26 SET(${_tolua_srcfiles_varname} ${${_tolua_srcfiles_varname}} ${_tolua_cxxfile})27 25 28 # TODO: check secureness of this temporary file 26 SET(${_target_source_files} 27 ${${_target_source_files}} 28 ${_tolua_cxxfile} 29 ${_tolua_hfile} 30 PARENT_SCOPE 31 ) 32 SOURCE_GROUP("Tolua" FILES ${_tolua_cxxfile} ${_tolua_hfile}) 33 34 # Create temporary package file 29 35 FILE(REMOVE ${_tolua_pkgfile}) 30 36 FOREACH(_tolua_inputfile ${_tolua_inputfiles}) … … 32 38 ENDFOREACH(_tolua_inputfile) 33 39 34 # Note: Some of the variables are already defined in src/tolua/CMakeLists.txt35 # or in the platform config36 40 ADD_CUSTOM_COMMAND( 37 41 OUTPUT ${_tolua_cxxfile} ${_tolua_hfile} 38 COMMAND tolua exe_orxonox -n ${_tolua_package}39 -w ${CMAKE_CURRENT_SOURCE_DIR}40 -o ${_tolua_cxxfile}41 -H ${_tolua_hfile}42 -s ${TOLUA_PARSER_SOURCE}43 ${_tolua_pkgfile}42 COMMAND tolua++app_orxonox -n ${_tolua_package} 43 -w ${CMAKE_CURRENT_SOURCE_DIR} 44 -o ${_tolua_cxxfile} 45 -H ${_tolua_hfile} 46 -s ${TOLUA_PARSER_SOURCE} 47 ${_tolua_pkgfile} 44 48 DEPENDS ${TOLUA_PARSER_DEPENDENCIES} 45 49 IMPLICIT_DEPENDS CXX ${_tolua_inputfiles} 46 WORKING_DIRECTORY ${ORXONOX_ LIBRARY_BIN_DIR}50 WORKING_DIRECTORY ${ORXONOX_RUNTIME_LIBRARY_DIRECTORY} 47 51 COMMENT "Generating tolua bind files for package ${_tolua_package}" 48 52 ) 49 END MACRO(TOLUA)53 ENDFUNCTION(GENERATE_TOLUA_BINDINGS) -
code/branches/buildsystem2/cmake/LibraryConfigMSVC.cmake
r2618 r2621 40 40 MESSAGE(FATAL_ERROR "Could not find dependency directory for the Visual Studio libraries") 41 41 ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/dependencies/orxonox_vc8) 42 SET(ORXONOX_ LIBRARY_BIN_DIR${MSVC_LIBRARY_DIR}/bin)42 SET(ORXONOX_RUNTIME_LIBRARY_DIRECTORY ${MSVC_LIBRARY_DIR}/bin) 43 43 44 44 # Set variables for the include directories and the libraries -
code/branches/buildsystem2/cmake/LibraryConfigMinGW.cmake
r2618 r2621 42 42 MESSAGE(FATAL_ERROR "Could not find dependency directory for the MinGW libraries") 43 43 ENDIF(EXISTS ${CMAKE_SOURCE_DIR}/libs) 44 SET(ORXONOX_ LIBRARY_BIN_DIR${MINGW_LIBRARY_DIR})44 SET(ORXONOX_RUNTIME_LIBRARY_DIRECTORY ${MINGW_LIBRARY_DIR}) 45 45 46 46 # Note: When setting ENV${} variables, make sure to use quotes when
Note: See TracChangeset
for help on using the changeset viewer.