Xavier Del Campo Romero
cf18241a16
So far, the game assets were located in the same repository as the game engine. Since data and engine are split into different repositories, now this project requires users to assign the CMAKE_PREFIX_PATH variable [1] to indicate the location, only in the case of non-standard locations. [1]: https://cmake.org/cmake/help/latest/variable/CMAKE_PREFIX_PATH.html
396 lines
17 KiB
CMake
396 lines
17 KiB
CMake
############################################################################
|
|
#
|
|
# file : macros.cmake
|
|
# copyright : (C) 2008 by Mart Kelder
|
|
# web : www.speed-dreams.org
|
|
#
|
|
############################################################################
|
|
|
|
############################################################################
|
|
# #
|
|
# This program is free software; you can redistribute it and/or modify #
|
|
# it under the terms of the GNU General Public License as published by #
|
|
# the Free Software Foundation; either version 2 of the License, or #
|
|
# (at your option) any later version. #
|
|
# #
|
|
############################################################################
|
|
|
|
# @file Main CMake configuration file (to be included in every CMakeLists.txt)
|
|
# @author Mart Kelder
|
|
|
|
#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)
|
|
SET(CMAKE_INSTALL_PREFIX "installed-build" CACHE PATH "Prefix prepended to install directories" FORCE)
|
|
ELSEIF(APPLE)
|
|
SET(CMAKE_INSTALL_PREFIX "speed-dreams-2.app" CACHE PATH "Prefix prepended to install directories" FORCE)
|
|
ELSE()
|
|
SET(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Prefix prepended to install directories" FORCE)
|
|
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)
|
|
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")
|
|
ELSEIF(HAIKU)
|
|
SET(SD_LOCALDIR "~/config/settings/speed-dreams" CACHE STRING "Where the user settings files should go")
|
|
ELSE(WIN32) #UNIX
|
|
SET(SD_LOCALDIR "~/.speed-dreams-2" CACHE STRING "Where the user settings files should go")
|
|
ENDIF(WIN32)
|
|
|
|
# Determine the default value of the tools executable file prefix.
|
|
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)
|
|
|
|
# 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)
|
|
|
|
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)
|
|
|
|
# Robots-related macros.
|
|
INCLUDE(${CURRENT_LIST_FILE_PATH}/robot.cmake)
|
|
|
|
# Robots-related macros.
|
|
INCLUDE(${CURRENT_LIST_FILE_PATH}/install.cmake)
|
|
|
|
# Internal dependencies macros (includes and libs).
|
|
INCLUDE(${CURRENT_LIST_FILE_PATH}/internaldeps.cmake)
|
|
|
|
# 3rd party dependencies macros (includes and libs).
|
|
INCLUDE(${CURRENT_LIST_FILE_PATH}/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,
|
|
# then the build will continue with a simple status message).
|
|
MACRO(SD_ADD_SUBDIRECTORY DIR_PATH)
|
|
|
|
IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${DIR_PATH} OR OPTION_CHECK_CONTENTS)
|
|
ADD_SUBDIRECTORY(${DIR_PATH})
|
|
ELSE()
|
|
MESSAGE(STATUS "Note : Won't build missing dir. ${DIR_PATH}")
|
|
ENDIF()
|
|
|
|
ENDMACRO(SD_ADD_SUBDIRECTORY PATH)
|
|
|
|
# Replacement of standard ADD_EXECUTABLE command (same interface).
|
|
MACRO(SD_ADD_EXECUTABLE TARGET_NAME)
|
|
|
|
# Standard ADD_EXECUTABLE command.
|
|
ADD_EXECUTABLE(${TARGET_NAME} ${ARGN})
|
|
|
|
# Change target location (for running in build-tree without installing).
|
|
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_BINDIR}")
|
|
|
|
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY ${_TGT_DIR})
|
|
|
|
IF(MSVC)
|
|
|
|
FOREACH(_CFG ${CMAKE_CONFIGURATION_TYPES})
|
|
STRING(TOUPPER ${_CFG} _CFG)
|
|
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY_${_CFG} "${_TGT_DIR}")
|
|
ENDFOREACH()
|
|
|
|
ENDIF(MSVC)
|
|
|
|
SET_PROPERTY(GLOBAL APPEND PROPERTY SD_EXE_LIST "${SD_BINDIR}/${TARGET_NAME}${CMAKE_EXECUTABLE_SUFFIX}")
|
|
|
|
ENDMACRO(SD_ADD_EXECUTABLE TARGET_NAME)
|
|
|
|
|
|
# Replacement of standard ADD_LIBRARY command,
|
|
# in order to take care of :
|
|
# * changing target location, for running in build-tree without installing,
|
|
# * changing target name for modules and robot DLLs (no "lib" prefix).
|
|
# Nearly same behaviour as standard ADD_LIBRARY, but :
|
|
# * more library types (possible values for TARGET_TYPE arg) :
|
|
# - STATIC, SHARED, MODULE : no change,
|
|
# - ROBOT : same as MODULE for standard ADD_LIBRARY.
|
|
# * TARGET_TYPE type arg is mandatory (no default).
|
|
MACRO(SD_ADD_LIBRARY TARGET_NAME TARGET_TYPE)
|
|
|
|
#MESSAGE(STATUS "SD_ADD_LIBRARY : TARGET_NAME = ${TARGET_NAME} TARGET_TYPE = ${TARGET_TYPE} ARGN = ${ARGN}")
|
|
|
|
# Standard ADD_EXECUTABLE command.
|
|
IF(${TARGET_TYPE} STREQUAL "ROBOT")
|
|
ADD_LIBRARY(${TARGET_NAME} MODULE ${ARGN})
|
|
ELSE()
|
|
ADD_LIBRARY(${TARGET_NAME} ${TARGET_TYPE} ${ARGN})
|
|
ENDIF()
|
|
|
|
# Determine target location (for running in build-tree without installing).
|
|
IF(${TARGET_TYPE} STREQUAL "SHARED")
|
|
IF(WIN32)
|
|
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_BINDIR}")
|
|
ELSE()
|
|
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_LIBDIR}/lib")
|
|
ENDIF()
|
|
|
|
ELSEIF(${TARGET_TYPE} STREQUAL "MODULE")
|
|
SET(_TGT_LOC ${CMAKE_CURRENT_SOURCE_DIR})
|
|
GET_FILENAME_COMPONENT(_TGT_TYPE ${_TGT_LOC} PATH)
|
|
GET_FILENAME_COMPONENT(_TGT_TYPE ${_TGT_TYPE} NAME)
|
|
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_LIBDIR}/modules/${_TGT_TYPE}")
|
|
SET_PROPERTY(GLOBAL APPEND PROPERTY SD_MODULE_LIST "${SD_LIBDIR}/modules/${_TGT_TYPE}/${TARGET_NAME}${CMAKE_SHARED_MODULE_SUFFIX}")
|
|
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES SD_TYPE "MODULE")
|
|
|
|
ELSEIF(${TARGET_TYPE} STREQUAL "ROBOT")
|
|
|
|
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_LIBDIR}/drivers/${TARGET_NAME}")
|
|
SET_PROPERTY(GLOBAL APPEND PROPERTY SD_ROBOT_LIST "${TARGET_NAME}")
|
|
|
|
ELSEIF(NOT ${TARGET_TYPE} STREQUAL "STATIC")
|
|
|
|
ENDIF()
|
|
|
|
# Change target location (for running in build-tree without installing).
|
|
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY "${_TGT_DIR}"
|
|
LIBRARY_OUTPUT_DIRECTORY "${_TGT_DIR}")
|
|
|
|
IF(MSVC)
|
|
|
|
FOREACH(_CFG ${CMAKE_CONFIGURATION_TYPES})
|
|
STRING(TOUPPER ${_CFG} _CFG)
|
|
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
|
RUNTIME_OUTPUT_DIRECTORY_${_CFG} "${_TGT_DIR}"
|
|
LIBRARY_OUTPUT_DIRECTORY_${_CFG} "${_TGT_DIR}")
|
|
ENDFOREACH()
|
|
|
|
ENDIF(MSVC)
|
|
|
|
#MESSAGE(STATUS "SD_ADD_LIBRARY : _TGT_DIR = ${_TGT_DIR}")
|
|
|
|
# No prefix for module and robot DLLs.
|
|
IF(${TARGET_TYPE} STREQUAL "MODULE" OR ${TARGET_TYPE} STREQUAL "ROBOT")
|
|
|
|
IF(UNIX OR MINGW)
|
|
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES PREFIX "")
|
|
ENDIF(UNIX OR MINGW)
|
|
|
|
ENDIF()
|
|
|
|
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 non-default compile options.
|
|
ADD_SD_COMPILE_OPTIONS()
|
|
|
|
# A useful variable for things that only need to be done once
|
|
# (macros.cmake is actually included by every CMakeLists.txt,
|
|
# in order one can run 'cmake .' everywhere in the source tree,
|
|
# but the bad side effect if that it is thus often included
|
|
# _multiple_ times by every CMakeLists.txt).
|
|
IF(NOT _ALREADY_DONE)
|
|
SET(_ALREADY_DONE TRUE)
|
|
ENDIF(NOT _ALREADY_DONE)
|