diff --git a/CMakeLists.txt b/CMakeLists.txt index 134f101bb..8831e210d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,21 +34,23 @@ IF(APPLE) ENDIF(APPLE) option(SD_ASSUME_DATADIR "Assume default directory for speed-dreams-data") +set(data_version 2.3.0) include(GNUInstallDirs) +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_LIST_DIR}/cmake) + if(SD_ASSUME_DATADIR) set(SD_DATADIR ${CMAKE_INSTALL_DATADIR}/games/speed-dreams-2) set(SD_DATADIR_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/games/speed-dreams-2) set(SD_DATADIR_ABS ${SD_DATADIR_INSTALL_PREFIX}) message(STATUS "Data directory: ${SD_DATADIR_ABS} (assumed)") -elseif(EXISTS speed-dreams-data/CMakeLists.txt) +elseif(EXISTS ${CMAKE_CURRENT_LIST_DIR}/speed-dreams-data/CMakeLists.txt) add_subdirectory(speed-dreams-data) set(SD_DATADIR ${CMAKE_INSTALL_DATADIR}/games/speed-dreams-2) set(SD_DATADIR_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/games/speed-dreams-2) set(SD_DATADIR_ABS ${CMAKE_CURRENT_SOURCE_DIR}/speed-dreams-data/data) message(STATUS "Data directory: ${SD_DATADIR_ABS} (in-tree)") else() - set(data_version 2.3.0) find_package(speed-dreams-data ${data_version} QUIET) if(NOT SD_DATADIR) @@ -72,9 +74,23 @@ else() message(STATUS "Data directory: ${SD_DATADIR_ABS}") endif() +if(CMAKE_CXX_COMPILER_ID) + set(SD_BUILD_INFO_COMPILER_NAME ${CMAKE_CXX_COMPILER_ID}) +else() + set(SD_BUILD_INFO_COMPILER_NAME "Unknown") +endif() + INCLUDE(cmake/macros.cmake) INCLUDE(cmake/checks.cmake) +set(CMAKE_INSTALL_RPATH + ${CMAKE_INSTALL_RPATH} + ${CMAKE_INSTALL_PREFIX}/${SD_LIBDIR}/lib + /usr/${SD_LIBDIR}/lib +) + +set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + CHECK_HEADERS_H() CHECK_FUNCTIONS() CHECK_LIBRARIES() @@ -128,31 +144,9 @@ IF(MSVC) INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/doc/userman/images/ DESTINATION ./doc/images/) ENDIF(MSVC) - -# Useful for using an installation of SD as a robot development framework without building it. -# Only do for an in source tree build as INSTALL_SD_CMAKE() doesn't seem to use CMAKE_INSTALL_PREFIX -IF("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") - INSTALL_SD_CMAKE() -ENDIF("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") - # Must be the last ADD_SUBDIRECTORY for FIXUP_BUNDLE to work ADD_SUBDIRECTORY(packaging) -# Generate a 'make clobber'-like clobber.sh/.bat script in case of an in-source build. -IF("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") - SD_GENERATE_CLOBBER_SCRIPT() -ENDIF("${PROJECT_SOURCE_DIR}" STREQUAL "${PROJECT_BINARY_DIR}") - -# Add an unistall target. -CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/uninstall.cmake" - "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake" IMMEDIATE @ONLY) -IF(MSVC) - SET(_UNINST_TGT_NAME "UNINSTALL") -ELSE(MSVC) - SET(_UNINST_TGT_NAME "uninstall") -ENDIF(MSVC) -ADD_CUSTOM_TARGET(${_UNINST_TGT_NAME} "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake" ) - IF(OPTION_CHECK_CONTENTS) INCLUDE(cmake/prerelease.cmake) ENDIF(OPTION_CHECK_CONTENTS) diff --git a/cmake/checks.cmake b/cmake/checks.cmake index f5cabaa82..c4332de14 100644 --- a/cmake/checks.cmake +++ b/cmake/checks.cmake @@ -1,7 +1,3 @@ -IF(NOT DEFINED SOURCE_DIR) - MESSAGE(ERROR ": Please first include macro's") -ENDIF(NOT DEFINED SOURCE_DIR) - INCLUDE(CheckIncludeFiles) INCLUDE(CheckFunctionExists) INCLUDE(CheckLibraryExists) diff --git a/cmake/config.h.in.cmake b/cmake/config.h.in.cmake index 07781aa14..fc98e1a9f 100755 --- a/cmake/config.h.in.cmake +++ b/cmake/config.h.in.cmake @@ -159,19 +159,7 @@ # define SD_BUILD_INFO_CONFIGURATION "${CMAKE_BUILD_TYPE}" #endif -#if defined(_MSC_VER) -# define SD_BUILD_INFO_COMPILER_NAME "MSC" -#elif defined(__GNUC__) -# if defined(__MINGW32__) -# define SD_BUILD_INFO_COMPILER_NAME "MinGW GCC" -# elif defined(__INTEL_COMPILER) -# define SD_BUILD_INFO_COMPILER_NAME "Intel" -# else -# define SD_BUILD_INFO_COMPILER_NAME "GCC" -# endif -#else -# define SD_BUILD_INFO_COMPILER_NAME "Unknown" -#endif +#define SD_BUILD_INFO_COMPILER_NAME "${SD_BUILD_INFO_COMPILER_NAME}" /* Run-time directories */ #define SD_DATADIR "${SD_DATADIR}/" diff --git a/cmake/doxygenconfig.in.cmake b/cmake/doxygenconfig.in.cmake index d5da3a64c..f63bbf973 100755 --- a/cmake/doxygenconfig.in.cmake +++ b/cmake/doxygenconfig.in.cmake @@ -114,7 +114,7 @@ FULL_PATH_NAMES = YES # If left blank the directory from which doxygen is run is used as the # path to strip. -STRIP_FROM_PATH = @SOURCE_DIR@ +STRIP_FROM_PATH = @CMAKE_SOURCE_DIR@ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells @@ -564,7 +564,7 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = @SOURCE_DIR@/src +INPUT = @CMAKE_SOURCE_DIR@/src # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is diff --git a/cmake/install.cmake b/cmake/install.cmake index 11846b856..d4bf5c11c 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake @@ -50,8 +50,8 @@ ENDMACRO(_GET_TARGET_REAL_PATHNAME TGT_NAME VAR_PATHNAME) # Installs bt.so in ${prefix}/${SD_LIBDIR}/drivers/bt # SD_INSTALL_FILES(BIN TARGETS speed-dreams) # Installs the speed-dreams target in ${prefix}/${SD_BINDIR} -# SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES sd2-menuview.6) -# Installs ${SOURCE_DIR}/doc/man/sd2-menuview.6 in ${prefix}/${SD_MANDIR}/man6 +# SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES sd2-menuview.6) +# Installs ${CMAKE_SOURCE_DIR}/doc/man/sd2-menuview.6 in ${prefix}/${SD_MANDIR}/man6 MACRO(SD_INSTALL_FILES) SET(SD_INSTALL_FILES_SYNTAX ${SD_INSTALL_FILES_SYNTAX} "LIB,1,1,IS_LIB,LIB_PATH") diff --git a/cmake/macros.cmake b/cmake/macros.cmake index 2b43bc265..d12c64d6c 100644 --- a/cmake/macros.cmake +++ b/cmake/macros.cmake @@ -20,11 +20,6 @@ #MESSAGE(STATUS "Processing ${CMAKE_CURRENT_SOURCE_DIR} ...") -# By default, we assume an "in-source" build. -IF(NOT DEFINED IN_SOURCETREE) - SET(IN_SOURCETREE TRUE) -ENDIF(NOT DEFINED IN_SOURCETREE) - # Setup the install prefix. IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) IF(WIN32) @@ -36,34 +31,11 @@ IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) ENDIF() ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) -# Determine the source folder if ??? -IF(NOT SOURCE_DIR AND IN_SOURCETREE) - SET(SOURCE_DIR ${CMAKE_SOURCE_DIR}) - MARK_AS_ADVANCED(SOURCE_DIR) -ENDIF(NOT SOURCE_DIR AND IN_SOURCETREE) - -# The path of the folder of the current CMakeLists.txt -GET_FILENAME_COMPONENT(CURRENT_LIST_FILE_PATH ${CMAKE_CURRENT_LIST_FILE} PATH) - # Macros arg list parsing tools. IF(NOT _ALREADY_DONE) - INCLUDE(${CURRENT_LIST_FILE_PATH}/splitargn.cmake) + INCLUDE(${CMAKE_CURRENT_LIST_DIR}/splitargn.cmake) ENDIF(NOT _ALREADY_DONE) -# Include dir for config.h -IF(IN_SOURCETREE) - FIND_PATH(CONFIGH_INCLUDE_DIR config.h PATHS ${SOURCE_DIR} ${CMAKE_BINARY_DIR} NO_DEFAULT_PATH) - FIND_PATH(CONFIGH_INCLUDE_DIR config.h PATHS ${SOURCE_DIR} ${CMAKE_BINARY_DIR}) - MARK_AS_ADVANCED(CONFIGH_INCLUDE_DIR) - IF(CONFIGH_INCLUDE_DIR) - SET(HAVE_CONFIG_H TRUE) - ELSE(CONFIGH_INCLUDE_DIR) - SET(HAVE_CONFIG_H FALSE) - ENDIF(CONFIGH_INCLUDE_DIR) -ELSE(IN_SOURCETREE) - SET(HAVE_CONFIG_H FALSE) -ENDIF(IN_SOURCETREE) - # Determine the default value of the user settings folder. IF(WIN32) SET(SD_LOCALDIR "~/speed-dreams-2.settings" CACHE STRING "Where the user settings files should go") @@ -77,86 +49,33 @@ ENDIF(WIN32) SET(SD_TOOLS_EXECPREFIX "sd2-" CACHE STRING "Prefix for the tools executable names") MARK_AS_ADVANCED(SD_TOOLS_EXECPREFIX) -# Determine the default value of the data, bin and lib (and man) folders. -IF(IN_SOURCETREE) - IF(CMAKE_SIZEOF_VOID_P MATCHES 4) - SET(_DEFLIBDIR "lib") - ELSE() - SET(_DEFLIBDIR "lib64") - ENDIF() - IF(WIN32) - SET(SD_BINDIR bin CACHE PATH "Place where the executables should go") - SET(SD_LIBDIR ${_DEFLIBDIR} CACHE PATH "Place where the libraries should go") - SET(SD_INCLUDEDIR include CACHE PATH "Place where the include files should go") - ELSE(WIN32) #UNIX - SET(SD_BINDIR games CACHE PATH "Place where the executables should go") - SET(SD_LIBDIR ${_DEFLIBDIR}/games/speed-dreams-2 CACHE PATH "Place where the libraries should go") - SET(SD_INCLUDEDIR include/speed-dreams-2 CACHE PATH "Place where the include files should go") - SET(SD_MANDIR share/man CACHE PATH "Place where the manual pages should go") - ENDIF(WIN32) - MARK_AS_ADVANCED(SD_BINDIR) - MARK_AS_ADVANCED(SD_LIBDIR) - MARK_AS_ADVANCED(SD_INCLUDEDIR) - IF(UNIX) - MARK_AS_ADVANCED(SD_MANDIR) - ENDIF(UNIX) -ELSE(IN_SOURCETREE) - SET(SD_LIBDIR ${SD_LIBDIR_ABS}) - SET(SD_BINDIR ${SD_BINDIR_ABS}) - SET(SD_INCLUDEDIR ${SD_INCLUDEDIR_ABS}) - IF(UNIX) - SET(SD_MANDIR ${SD_MANDIR_ABS}) - ENDIF(UNIX) -ENDIF(IN_SOURCETREE) +IF(WIN32) + SET(SD_BINDIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Place where the executables should go") +ELSE() + SET(SD_BINDIR games CACHE PATH "Place where the executables should go") +ENDIF() -# Determine the aboslute paths of the data, bin and lib (and man) folders. - -IF(IS_ABSOLUTE ${SD_LIBDIR}) - GET_FILENAME_COMPONENT(SD_LIBDIR_ABS ${SD_LIBDIR} ABSOLUTE) -ELSE(IS_ABSOLUTE ${SD_LIBDIR}) - GET_FILENAME_COMPONENT(SD_LIBDIR_ABS ${CMAKE_INSTALL_PREFIX}/${SD_LIBDIR} ABSOLUTE) -ENDIF(IS_ABSOLUTE ${SD_LIBDIR}) - -IF(IS_ABSOLUTE ${SD_BINDIR}) - GET_FILENAME_COMPONENT(SD_BINDIR_ABS ${SD_BINDIR} ABSOLUTE) -ELSE(IS_ABSOLUTE ${SD_BINDIR}) - GET_FILENAME_COMPONENT(SD_BINDIR_ABS ${CMAKE_INSTALL_PREFIX}/${SD_BINDIR} ABSOLUTE) -ENDIF(IS_ABSOLUTE ${SD_BINDIR}) - -IF(IS_ABSOLUTE ${SD_INCLUDEDIR}) - GET_FILENAME_COMPONENT(SD_INCLUDEDIR_ABS ${SD_INCLUDEDIR} ABSOLUTE) -ELSE(IS_ABSOLUTE ${SD_INCLUDEDIR}) - GET_FILENAME_COMPONENT(SD_INCLUDEDIR_ABS ${CMAKE_INSTALL_PREFIX}/${SD_INCLUDEDIR} ABSOLUTE) -ENDIF(IS_ABSOLUTE ${SD_INCLUDEDIR}) - -IF(UNIX) - IF(IS_ABSOLUTE ${SD_MANDIR}) - GET_FILENAME_COMPONENT(SD_MANDIR_ABS ${SD_MANDIR} ABSOLUTE) - ELSE(IS_ABSOLUTE ${SD_MANDIR}) - GET_FILENAME_COMPONENT(SD_MANDIR_ABS ${CMAKE_INSTALL_PREFIX}/${SD_MANDIR} ABSOLUTE) - ENDIF(IS_ABSOLUTE ${SD_MANDIR}) -ENDIF(UNIX) +SET(SD_LIBDIR ${CMAKE_INSTALL_LIBDIR}/games/speed-dreams-2 CACHE PATH "Place where the libraries should go") +SET(SD_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}/speed-dreams-2 CACHE PATH "Place where the include files should go") +SET(SD_MANDIR ${CMAKE_INSTALL_MANDIR} CACHE PATH "Place where the manual pages should go") STRING(REGEX REPLACE "^(.*[^/])/*$" "\\1" SD_LOCALDIR_TMP ${SD_LOCALDIR}) SET(SD_LOCALDIR ${SD_LOCALDIR_TMP}) -SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CURRENT_LIST_FILE_PATH}) -SET(CMAKE_INSTALL_RPATH "${SD_LIBDIR_ABS}/lib") - # Configuration options macros. -INCLUDE(${CURRENT_LIST_FILE_PATH}/options.cmake) +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/options.cmake) # Robots-related macros. -INCLUDE(${CURRENT_LIST_FILE_PATH}/robot.cmake) +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/robot.cmake) # Robots-related macros. -INCLUDE(${CURRENT_LIST_FILE_PATH}/install.cmake) +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/install.cmake) # Internal dependencies macros (includes and libs). -INCLUDE(${CURRENT_LIST_FILE_PATH}/internaldeps.cmake) +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/internaldeps.cmake) # 3rd party dependencies macros (includes and libs). -INCLUDE(${CURRENT_LIST_FILE_PATH}/thirdpartydeps.cmake) +INCLUDE(${CMAKE_CURRENT_LIST_DIR}/thirdpartydeps.cmake) # Use as a replacement of native ADD_DIRECTORY if the target folder may be optional # (if it is actually not there, and OPTION_CHECK_CONTENTS is Off, @@ -272,116 +191,8 @@ MACRO(SD_ADD_LIBRARY TARGET_NAME TARGET_TYPE) ENDMACRO(SD_ADD_LIBRARY TARGET_NAME TARGET_TYPE) - - -# Generate clobber.sh/bat shell script (remove _any_ build system generated file) -MACRO(SD_GENERATE_CLOBBER_SCRIPT) - - IF(MSVC) - - SET(TGT_SCRIPT "${SOURCE_DIR}/clobber.bat") - FILE(WRITE "${TGT_SCRIPT}" "@echo off\n") - FILE(APPEND "${TGT_SCRIPT}" "rem CMake-generated script for in-source build tree total cleanup\n") - FILE(APPEND "${TGT_SCRIPT}" "rem (remove any build-system-generated file (+ .bak, *~, ... etc), \n") - FILE(APPEND "${TGT_SCRIPT}" "rem in case you want to get back to something like\n") - FILE(APPEND "${TGT_SCRIPT}" "rem right after a 'svn checkout' command).\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "rem Check if we are on top of a CMake-enabled SD source tree\n") - FILE(APPEND "${TGT_SCRIPT}" "if not exist CMakeLists.txt goto ERROR\n") - FILE(APPEND "${TGT_SCRIPT}" "if not exist cmake goto ERROR\n") - FILE(APPEND "${TGT_SCRIPT}" "if not exist data goto ERROR\n") - FILE(APPEND "${TGT_SCRIPT}" "if not exist src goto ERROR\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "echo Cleaning up in-source build tree ...\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "rem CMake/compiler generated files and dirs\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "del CMakeCache.txt\n") - FILE(APPEND "${TGT_SCRIPT}" "del CMakeLists.txt.user\n") - FILE(APPEND "${TGT_SCRIPT}" "del config.h\n") - FILE(APPEND "${TGT_SCRIPT}" "del CPackConfig.cmake\n") - FILE(APPEND "${TGT_SCRIPT}" "del CPackSourceConfig.cmake\n") - FILE(APPEND "${TGT_SCRIPT}" "del uninstall.cmake\n") - FILE(APPEND "${TGT_SCRIPT}" "del doxygen_config\n") - FILE(APPEND "${TGT_SCRIPT}" "del install_manifest.txt\n") - FILE(APPEND "${TGT_SCRIPT}" "del speed-dreams-2.ncb\n") - FILE(APPEND "${TGT_SCRIPT}" "del /ah speed-dreams-2.suo\n") - FILE(APPEND "${TGT_SCRIPT}" "del speed-dreams-2.sln\n") - FILE(APPEND "${TGT_SCRIPT}" "del version.h\n") - FILE(APPEND "${TGT_SCRIPT}" "del xmlversion_loc.txt\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.vcproj*\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q cmake_install.cmake\n") - FILE(APPEND "${TGT_SCRIPT}" "for /f \"tokens=*\" %%G in ('dir /b /ad /s CMakeFiles*') do rmdir /s /q %%G\n") - FILE(APPEND "${TGT_SCRIPT}" "for /f \"tokens=*\" %%G in ('dir /b /ad /s *.dir') do rmdir /s /q %%G\n") - FILE(APPEND "${TGT_SCRIPT}" "for /f \"tokens=*\" %%G in ('dir /b /ad /s Debug*') do rmdir /s /q %%G\n") - FILE(APPEND "${TGT_SCRIPT}" "for /f \"tokens=*\" %%G in ('dir /b /ad /s Release*') do rmdir /s /q %%G\n") - FILE(APPEND "${TGT_SCRIPT}" "rmdir /s /q _CPack_Packages\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "rem Other useless files\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.*~\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.~*\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.bak\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.flc\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.orig\n") - FILE(APPEND "${TGT_SCRIPT}" "del /s /q *.cbp\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "echo Done.\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "goto END\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" ":ERROR\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "echo Bad current dir for that ; please run from the root folder of a CMake-enabled SD source tree.\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" ":END\n") - - ELSE(MSVC) - - SET(TGT_SCRIPT "${SOURCE_DIR}/clobber.sh") - FILE(WRITE "${TGT_SCRIPT}" "#!/bin/sh\n") - FILE(APPEND "${TGT_SCRIPT}" "# CMake-generated script for in-source build tree total cleanup\n") - FILE(APPEND "${TGT_SCRIPT}" "# (remove any build-system-generated file (+ .bak, *~, ... etc), \n") - FILE(APPEND "${TGT_SCRIPT}" "# in case you want to get back to something like\n") - FILE(APPEND "${TGT_SCRIPT}" "# right after a 'svn checkout' command).\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" "# Check if we are on top of a CMake-enabled SD source tree\n") - FILE(APPEND "${TGT_SCRIPT}" "if [ -f CMakeLists.txt -a -d cmake -a -d data -a -d src ] ; then\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" " echo \"Cleaning up in-source build tree ...\"\n") - FILE(APPEND "${TGT_SCRIPT}" " \n") - FILE(APPEND "${TGT_SCRIPT}" " # CMake/compiler generated files and dirs\n") - FILE(APPEND "${TGT_SCRIPT}" " rm -f CMakeCache.txt CMakeLists.txt.user config.h doxygen_config\n") - FILE(APPEND "${TGT_SCRIPT}" " rm -f CPackConfig.cmake CPackSourceConfig.cmake\n") - FILE(APPEND "${TGT_SCRIPT}" " rm -f uninstall.cmake\n") - FILE(APPEND "${TGT_SCRIPT}" " rm -f xmlversion_loc.txt install_manifest.txt version.h.txt\n") - FILE(APPEND "${TGT_SCRIPT}" " rm -fr _CPack_Packages\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -depth -type d -name \"CMakeFiles\" -exec rm -fr {} \\;\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"cmake_install.cmake\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"Makefile\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.so\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find src/tools -type f -name \"sd2-*\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find src/tools/xmlversion -type f -name \"xmlversion\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find src/main -type f -name \"speed-dreams-2\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" "\n") - FILE(APPEND "${TGT_SCRIPT}" " # Other useless files\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.rej\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.orig\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.flc\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.bak\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.cbp\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.a\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*~\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " find . -type f -name \"*.~*\" -delete\n") - FILE(APPEND "${TGT_SCRIPT}" " \n") - FILE(APPEND "${TGT_SCRIPT}" " echo \"Done.\"\n") - FILE(APPEND "${TGT_SCRIPT}" " \n") - FILE(APPEND "${TGT_SCRIPT}" "else\n") - FILE(APPEND "${TGT_SCRIPT}" " echo \"Bad current dir for that ; please run from the root folder of a CMake-enabled SD source tree.\"\n") - FILE(APPEND "${TGT_SCRIPT}" "fi\n") - EXECUTE_PROCESS(COMMAND chmod ugo+x ${TGT_SCRIPT}) - ENDIF(MSVC) - -ENDMACRO(SD_GENERATE_CLOBBER_SCRIPT) +ADD_COMPILE_DEFINITIONS(HAVE_CONFIG_H) +INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}) # Add non-default compile options. ADD_SD_COMPILE_OPTIONS() diff --git a/cmake/options.cmake b/cmake/options.cmake index 552db8e1c..834c7bdfe 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -22,27 +22,6 @@ INCLUDE(CMakeDependentOption) MACRO(ADD_SD_COMPILE_OPTIONS) - # This has to be done more than once, because HAVE_CONFIG_H may change. - IF(HAVE_CONFIG_H) - - ADD_DEFINITIONS(-DHAVE_CONFIG_H) - - IF(IN_SOURCETREE) - SET(INCLUDE_CANDIDATE ${SOURCE_DIR}) - ELSE(IN_SOURCETREE) - SET(INCLUDE_CANDIDATE "") - ENDIF(IN_SOURCETREE) - FIND_PATH(CONFIGH_INCLUDE_DIR config.h ${INCLUDE_CANDIDATE} /usr/include /usr/local/include NO_DEFAULT_PATH) - FIND_PATH(CONFIGH_INCLUDE_DIR config.h ${INCLUDE_CANDIDATE} /usr/include /usr/local/include) - MARK_AS_ADVANCED(CONFIGH_INCLUDE_DIR) - IF(CONFIGH_INCLUDE_DIR) - INCLUDE_DIRECTORIES(${CONFIGH_INCLUDE_DIR}) - ELSE(CONFIGH_INCLUDE_DIR) - MESSAGE(FATAL_ERROR "Cannot find config.h header file") - ENDIF(CONFIGH_INCLUDE_DIR) - - ENDIF(HAVE_CONFIG_H) - # Build options (do it only once). IF(NOT _ALREADY_DONE) diff --git a/cmake/robot.cmake b/cmake/robot.cmake index 1ba436a4c..875cd61c3 100644 --- a/cmake/robot.cmake +++ b/cmake/robot.cmake @@ -64,11 +64,7 @@ MACRO(GENERATE_ROBOT_DEF_FILE ROBOTNAME DEF_FILE) # Generate the .def file SET(ROBOT_NAME "${ROBOTNAME}") - IF(IN_SOURCETREE) - CONFIGURE_FILE(${SOURCE_DIR}/cmake/robot.def.in.cmake ${DEF_FILE}) - ELSE(IN_SOURCETREE) - CONFIGURE_FILE(${SD_DATADIR}/cmake/robot.def.in.cmake ${DEF_FILE}) - ENDIF(IN_SOURCETREE) + CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/robot.def.in.cmake ${DEF_FILE}) ENDMACRO(GENERATE_ROBOT_DEF_FILE ROBOTNAME DEF_FILE) diff --git a/cmake/uninstall.cmake b/cmake/uninstall.cmake deleted file mode 100755 index 7201d538c..000000000 --- a/cmake/uninstall.cmake +++ /dev/null @@ -1,20 +0,0 @@ -# CMake script behind the 'uninstall' target. - -IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") -ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - -FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" FILES_TO_REMOVE) -STRING(REGEX REPLACE "\n" ";" FILES_TO_REMOVE "${FILES_TO_REMOVE}") -FOREACH(FILE_TO_REMOVE ${FILES_TO_REMOVE}) - MESSAGE(STATUS "Uninstalling: $ENV{DESTDIR}${FILE_TO_REMOVE}") - IF(EXISTS "$ENV{DESTDIR}${FILE_TO_REMOVE}") - EXEC_PROGRAM("@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${FILE_TO_REMOVE}\"" - OUTPUT_VARIABLE RM_OUT RETURN_VALUE RM_RETVAL) - IF(NOT "${RM_RETVAL}" STREQUAL "0") - MESSAGE(FATAL_ERROR "Failed to remove $ENV{DESTDIR}${FILE_TO_REMOVE} (err code ${RM_RETVAL})") - ENDIF(NOT "${RM_RETVAL}" STREQUAL "0") - ELSE(EXISTS "$ENV{DESTDIR}${FILE_TO_REMOVE}") - MESSAGE(STATUS "File \"$ENV{DESTDIR}${FILE_TO_REMOVE}\" does not exist.") - ENDIF(EXISTS "$ENV{DESTDIR}${FILE_TO_REMOVE}") -ENDFOREACH(FILE_TO_REMOVE) diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index 66710497c..e6de45657 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -45,7 +45,7 @@ IF(MINGW) ENDIF(MINGW) IF(UNIX) - SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) + SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) ENDIF(UNIX) SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME}) diff --git a/src/modules/userinterface/legacymenu/CMakeLists.txt b/src/modules/userinterface/legacymenu/CMakeLists.txt index 2a5198f92..16db8c8e5 100644 --- a/src/modules/userinterface/legacymenu/CMakeLists.txt +++ b/src/modules/userinterface/legacymenu/CMakeLists.txt @@ -55,7 +55,7 @@ SET(CONFSCREENS_HEADERS ${CS}/confscreens.h ${CS}/advancedgraphconfig.h SET(RS racescreens) SET(RACESCREENS_SOURCES ${RS}/raceselectmenu.cpp #${RS}/raceweekendmenu.cpp - ${RS}/racemanmenu.cpp ${RS}/fileselect.cpp ${RS}/networkingmenu.cpp + ${RS}/racemanmenu.cpp ${RS}/fileselect.cpp ${RS}/raceconfigstate.cpp ${RS}/trackselect.cpp ${RS}/driverselect.cpp ${RS}/garagemenu.cpp ${RS}/raceparamsmenu.cpp ${RS}/carsetupmenu.cpp @@ -67,6 +67,8 @@ IF(OPTION_CLIENT_SERVER) SET(RACESCREENS_SOURCES ${RACESCREENS_SOURCES} ${RS}/csnetworkingmenu.cpp ${RS}/csnetclientsettings.cpp ${RS}/csnetserversettings.cpp) +ELSE() + SET(RACESCREENS_SOURCES ${RACESCREENS_SOURCES} ${RS}/networkingmenu.cpp) ENDIF(OPTION_CLIENT_SERVER) SET(RACESCREENS_HEADERS ${RS}/racescreens.h ${RS}/garagemenu.h ${RS}/carsetupmenu.h) #${RS}/raceweekendscreens.h) diff --git a/src/modules/userinterface/legacymenu/racescreens/networkingmenu.cpp b/src/modules/userinterface/legacymenu/racescreens/networkingmenu.cpp index 71694519e..e9079bf16 100644 --- a/src/modules/userinterface/legacymenu/racescreens/networkingmenu.cpp +++ b/src/modules/userinterface/legacymenu/racescreens/networkingmenu.cpp @@ -22,7 +22,6 @@ Should also allow choosing IP address, track, etc ... */ -#ifndef CLIENT_SERVER #include #include #include @@ -1110,4 +1109,3 @@ GetHumanDriver(NetDriver &driver,int index) return 1; } -#endif // #ifndef CLIENT_SERVER diff --git a/src/tools/accc/CMakeLists.txt b/src/tools/accc/CMakeLists.txt index 81aeb1639..68f7b1a15 100644 --- a/src/tools/accc/CMakeLists.txt +++ b/src/tools/accc/CMakeLists.txt @@ -15,7 +15,7 @@ SD_ADD_EXECUTABLE(${_TARGET_NAME} ${ACCC_SOURCES} ${ACCC_HEADERS}) ADD_SDLIB_LIBRARY(${_TARGET_NAME} portability) IF(UNIX) - SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) + SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) ENDIF(UNIX) SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME}) diff --git a/src/tools/menuview/CMakeLists.txt b/src/tools/menuview/CMakeLists.txt index 8568e9d55..6ae8e41a9 100644 --- a/src/tools/menuview/CMakeLists.txt +++ b/src/tools/menuview/CMakeLists.txt @@ -47,7 +47,7 @@ IF(MINGW) ENDIF(MINGW) IF(UNIX) - SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) + SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) ENDIF(UNIX) SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME}) diff --git a/src/tools/nfs2ac/CMakeLists.txt b/src/tools/nfs2ac/CMakeLists.txt index 3fd5b7fa3..a0401b56f 100644 --- a/src/tools/nfs2ac/CMakeLists.txt +++ b/src/tools/nfs2ac/CMakeLists.txt @@ -13,7 +13,7 @@ SD_ADD_EXECUTABLE(${_TARGET_NAME} ${NFS2AC_SOURCES}) ADD_SDLIB_LIBRARY(${_TARGET_NAME} portability) IF(UNIX) - SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) + SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) ENDIF(UNIX) SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME}) diff --git a/src/tools/nfsperf/CMakeLists.txt b/src/tools/nfsperf/CMakeLists.txt index bab1be5b5..150931663 100644 --- a/src/tools/nfsperf/CMakeLists.txt +++ b/src/tools/nfsperf/CMakeLists.txt @@ -19,7 +19,7 @@ ADD_SDLIB_LIBRARY(${_TARGET_NAME} portability tgf txml) # txml ignored if OPTION ADD_DL_LIBRARY(${_TARGET_NAME}) IF(UNIX) - SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) + SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) ENDIF(UNIX) SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME}) diff --git a/src/tools/trackgen/CMakeLists.txt b/src/tools/trackgen/CMakeLists.txt index bba7bb7e4..534e9d74c 100644 --- a/src/tools/trackgen/CMakeLists.txt +++ b/src/tools/trackgen/CMakeLists.txt @@ -51,7 +51,7 @@ IF(MINGW) ENDIF(MINGW) IF(UNIX) - SD_INSTALL_FILES(MAN man6 PREFIX ${SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) + SD_INSTALL_FILES(MAN man6 PREFIX ${CMAKE_SOURCE_DIR}/doc/man FILES ${_TARGET_NAME}.6) ENDIF(UNIX) SD_INSTALL_FILES(BIN TARGETS ${_TARGET_NAME})