Re #58 Fixed crash on loading credits menu + QtCreator+MinGW build + CMake configuration polishing
git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@5364 30fe4595-0a0c-4342-8851-515496e4dcbd
This commit is contained in:
parent
558aade200
commit
08a45cbc40
|
@ -109,8 +109,8 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/doxygenconfig.in.cmake
|
|||
|
||||
|
||||
# Fictive = no-output target, for having source files available in IDEs.
|
||||
SET(_SOURCES credits.xml CHANGES.txt COPYING.txt INSTALL.txt README.txt TODO.txt)
|
||||
ADD_CUSTOM_TARGET(rootdoc SOURCES ${_SOURCES})
|
||||
SET(_SOURCES CHANGES.txt COPYING.txt INSTALL.txt README.txt TODO.txt)
|
||||
ADD_CUSTOM_TARGET(rootdoc SOURCES ${_SOURCES} data/data/credits.xml)
|
||||
|
||||
# Install top tree data files
|
||||
SD_INSTALL_FILES(DATA "/" FILES ${_SOURCES})
|
||||
|
|
|
@ -72,11 +72,13 @@ MACRO(SD_UPDATE_SETTINGS_VERSION)
|
|||
|
||||
# In order to run xmlversion.exe in the build tree (see below), under Windows,
|
||||
# we nearly always have to copy 3rd party dependency and compiler run-time DLLs next to it.
|
||||
# Note: Not really needed as speed-dreams-2 is built before settings_versions,
|
||||
# and so already did this job. But in case someone changes the build order ...
|
||||
IF(WIN32)
|
||||
|
||||
SET(_DLLS_TO_INSTALL)
|
||||
|
||||
# Internal dependencies (needed in all cases).
|
||||
# Internal dependencies : not needed, as we already generate them in SD_BINDIR.
|
||||
|
||||
# 3rd party dependencies
|
||||
# (not needed for MinGW builds through the "MSYS Makefiles" generator,
|
||||
|
@ -116,6 +118,7 @@ MACRO(SD_UPDATE_SETTINGS_VERSION)
|
|||
# TODO: Use Custom3rdParty macros for this (and thus avoid duplicate code) ?
|
||||
IF(MINGW AND NOT CMAKE_GENERATOR STREQUAL "MSYS Makefiles")
|
||||
|
||||
GET_FILENAME_COMPONENT(_MINGW_BINDIR "${CMAKE_CXX_COMPILER}" PATH)
|
||||
LIST(APPEND _DLLS_TO_INSTALL "${_MINGW_BINDIR}/libstdc++-6.dll")
|
||||
LIST(APPEND _DLLS_TO_INSTALL "${_MINGW_BINDIR}/libgcc_s_dw2-1.dll")
|
||||
|
||||
|
@ -144,31 +147,32 @@ MACRO(SD_UPDATE_SETTINGS_VERSION)
|
|||
#MESSAGE(STATUS "SD_UPDATE_SETTINGS_VERSION : XMLVERSION_ARGS=${_XMLVER_ARGS}")
|
||||
GET_FILENAME_COMPONENT(_XMLVER_DIR ${_XMLVER_EXE} PATH)
|
||||
GET_FILENAME_COMPONENT(_XMLVER_NAME ${_XMLVER_EXE} NAME)
|
||||
|
||||
SET(_SRC_FILE)
|
||||
FOREACH(_ARG ${_XMLVER_ARGS})
|
||||
|
||||
#MESSAGE(STATUS "${_ARG}")
|
||||
IF(NOT _SRC_FILE)
|
||||
SET(_SRC_FILE ${_ARG})
|
||||
ELSE()
|
||||
SET(_USER_DIR ${_ARG})
|
||||
# Register file for run-time install/update at game startup
|
||||
# (through filesetup.cpp services)
|
||||
|
||||
IF(WIN32)
|
||||
ADD_CUSTOM_COMMAND(TARGET settings_versions POST_BUILD
|
||||
WORKING_DIRECTORY "${_XMLVER_DIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "${_XMLVER_EXE}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}/version.xml" "${_SRC_FILE}" "${_USER_DIR}" "${PROJECT_SOURCE_DIR}/data"
|
||||
COMMAND "${_XMLVER_NAME}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}/version.xml" "${_SRC_FILE}" "${_USER_DIR}" "${PROJECT_SOURCE_DIR}/data"
|
||||
VERBATIM)
|
||||
ELSE(WIN32)
|
||||
ADD_CUSTOM_COMMAND(TARGET settings_versions POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "${_XMLVER_EXE}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}/version.xml" "${_SRC_FILE}" "${_USER_DIR}" "${PROJECT_SOURCE_DIR}/data"
|
||||
COMMAND "${_XMLVER_EXE}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}/version.xml" "${_SRC_FILE}" "${_USER_DIR}" "${PROJECT_SOURCE_DIR}/data"
|
||||
VERBATIM)
|
||||
ENDIF(WIN32)
|
||||
SET(_SRC_FILE ${_ARG})
|
||||
|
||||
ELSE()
|
||||
|
||||
SET(_USER_DIR ${_ARG})
|
||||
|
||||
# Register file for run-time install/update at game startup, thanks to xmlversion
|
||||
# (filesetup.cpp services will do the job at game startup).
|
||||
ADD_CUSTOM_COMMAND(TARGET settings_versions POST_BUILD
|
||||
WORKING_DIRECTORY "${_XMLVER_DIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E echo "${_XMLVER_EXE}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}/version.xml" "${_SRC_FILE}" "${_USER_DIR}" "${PROJECT_SOURCE_DIR}/data"
|
||||
COMMAND "${_XMLVER_NAME}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}/version.xml" "${_SRC_FILE}" "${_USER_DIR}" "${PROJECT_SOURCE_DIR}/data"
|
||||
VERBATIM)
|
||||
|
||||
# Done for this {file, folder} couple, ready for next one.
|
||||
SET(_SRC_FILE)
|
||||
|
||||
ENDIF()
|
||||
|
||||
ENDFOREACH()
|
||||
|
||||
# Install version.xml
|
||||
|
|
|
@ -189,21 +189,20 @@ MACRO(SD_ADD_EXECUTABLE TARGET_NAME)
|
|||
ADD_EXECUTABLE(${TARGET_NAME} ${ARGN})
|
||||
|
||||
# Change target location (for running in build-tree without installing).
|
||||
IF(WIN32)
|
||||
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_BINDIR}")
|
||||
|
||||
GET_TARGET_PROPERTY(_TARGET_LOC ${TARGET_NAME} LOCATION)
|
||||
ADD_CUSTOM_COMMAND(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo Copying "${_TARGET_LOC}" to "${CMAKE_BINARY_DIR}/${SD_BINDIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/${SD_BINDIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${_TARGET_LOC}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}"
|
||||
VERBATIM)
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${_TGT_DIR})
|
||||
|
||||
ELSE()
|
||||
IF(MSVC)
|
||||
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${SD_BINDIR})
|
||||
FOREACH(_CFG ${CMAKE_CONFIGURATION_TYPES})
|
||||
STRING(TOUPPER ${_CFG} _CFG)
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY_${_CFG} "${_TGT_DIR}")
|
||||
ENDFOREACH()
|
||||
|
||||
ENDIF()
|
||||
ENDIF(MSVC)
|
||||
|
||||
# Make the "settings_versions" target depend on this target,
|
||||
# in order settings_versions is built after them.
|
||||
|
@ -230,25 +229,13 @@ MACRO(SD_ADD_LIBRARY TARGET_NAME TARGET_TYPE)
|
|||
ADD_LIBRARY(${TARGET_NAME} ${TARGET_TYPE} ${ARGN})
|
||||
ENDIF()
|
||||
|
||||
# Change target location (for running in build-tree without installing).
|
||||
# Determine target location (for running in build-tree without installing).
|
||||
IF(${TARGET_TYPE} STREQUAL "SHARED")
|
||||
|
||||
IF(WIN32)
|
||||
|
||||
# Why a different stuff than for MODULE or ROBOT ?
|
||||
GET_TARGET_PROPERTY(_TARGET_LOC ${TARGET_NAME} LOCATION)
|
||||
ADD_CUSTOM_COMMAND(TARGET ${TARGET_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E echo Copying "${_TARGET_LOC}" to "${CMAKE_BINARY_DIR}/${SD_BINDIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_BINARY_DIR}/${SD_BINDIR}"
|
||||
COMMAND ${CMAKE_COMMAND} -E copy "${_TARGET_LOC}" "${CMAKE_BINARY_DIR}/${SD_BINDIR}"
|
||||
VERBATIM)
|
||||
|
||||
ELSE(WIN32)
|
||||
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${SD_LIBDIR}/lib
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${SD_LIBDIR}/lib)
|
||||
|
||||
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_BINDIR}")
|
||||
ELSE()
|
||||
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_LIBDIR}/lib")
|
||||
ENDIF()
|
||||
|
||||
ELSEIF(${TARGET_TYPE} STREQUAL "MODULE")
|
||||
|
@ -257,50 +244,41 @@ MACRO(SD_ADD_LIBRARY TARGET_NAME TARGET_TYPE)
|
|||
GET_FILENAME_COMPONENT(_TGT_TYPE ${_TGT_LOC} PATH)
|
||||
GET_FILENAME_COMPONENT(_TGT_TYPE ${_TGT_TYPE} PATH)
|
||||
IF(MSVC)
|
||||
# Take care of the build config-specific Debug/Relesase/... folder.
|
||||
# Take care of the build config-specific Debug/Release/... folder.
|
||||
GET_FILENAME_COMPONENT(_TGT_TYPE ${_TGT_TYPE} PATH)
|
||||
ENDIF()
|
||||
GET_FILENAME_COMPONENT(_TGT_TYPE ${_TGT_TYPE} NAME)
|
||||
|
||||
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_LIBDIR}/modules/${_TGT_TYPE}")
|
||||
|
||||
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()
|
||||
|
||||
IF(UNIX OR MINGW)
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES PREFIX "")
|
||||
ENDIF(UNIX OR MINGW)
|
||||
|
||||
ELSEIF(${TARGET_TYPE} STREQUAL "ROBOT")
|
||||
|
||||
SET(_TGT_DIR "${CMAKE_BINARY_DIR}/${SD_LIBDIR}/drivers/${TARGET_NAME}")
|
||||
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
|
||||
RUNTIME_OUTPUT_DIRECTORY ${_TGT_DIR}
|
||||
LIBRARY_OUTPUT_DIRECTORY ${_TGT_DIR})
|
||||
ELSE()
|
||||
|
||||
IF(MSVC)
|
||||
MESSSAGE(FATAL "Unsupported library type ${TARGET_TYPE} for ${TARGET_NAME}")
|
||||
|
||||
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()
|
||||
|
||||
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)
|
||||
|
||||
# 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 "")
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
INCLUDE(../../cmake/macros.cmake)
|
||||
|
||||
SD_INSTALL_FILES(DATA data FILES credits.xml)
|
||||
|
||||
ADD_SUBDIRECTORY(fonts)
|
||||
ADD_SUBDIRECTORY(icons)
|
||||
ADD_SUBDIRECTORY(img)
|
||||
|
|
|
@ -83,7 +83,7 @@ static void* creditsPageCreate(int startChapterIndex, int startRecordIndex)
|
|||
static char buf2[maxBufSize];
|
||||
|
||||
// Open and parse credits file
|
||||
sprintf(buf, "%s%s", GfDataDir(), "credits.xml");
|
||||
sprintf(buf, "%s%s", GfDataDir(), "data/credits.xml");
|
||||
void* hparmCredits = GfParmReadFile(buf, GFPARM_RMODE_REREAD);
|
||||
if (!hparmCredits)
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue