CMAKE: added install targets
this fixes the issue with one application overwriting the data files for another application still w.i.p.master
parent
77c71af1f8
commit
fa296bb1b8
|
@ -5,6 +5,8 @@ set(SCRIPTS_CMAKE_DIR ${PROJECT_SOURCE_DIR}/cmake)
|
|||
|
||||
include(${SCRIPTS_CMAKE_DIR}/common.cmake)
|
||||
include(${SCRIPTS_CMAKE_DIR}/macros.cmake)
|
||||
include(${SCRIPTS_CMAKE_DIR}/pack.cmake)
|
||||
include(CPack)
|
||||
|
||||
option(UNITTESTS "Builds with tests" ON)
|
||||
option(UNITTESTS_SANITIZER_THREADS "Builds tests with thread sanitizer" OFF)
|
||||
|
|
4
Makefile
4
Makefile
|
@ -11,10 +11,10 @@ all: build
|
|||
|
||||
.PHONY: build
|
||||
build:
|
||||
$(Q)mkdir -p $(BUILDDIR); cd $(BUILDDIR); cmake -G"Eclipse CDT4 - Unix Makefiles" ..; make $(JOB_FLAG)
|
||||
$(Q)mkdir -p $(BUILDDIR); cd $(BUILDDIR); cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./linux ..; make $(JOB_FLAG); make install
|
||||
|
||||
release:
|
||||
$(Q)mkdir -p $(BUILDDIR); cd $(BUILDDIR); cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Release ..; make $(JOB_FLAG)
|
||||
$(Q)mkdir -p $(BUILDDIR); cd $(BUILDDIR); cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_INSTALL_PREFIX=./linux -DCMAKE_BUILD_TYPE=Release ..; make $(JOB_FLAG); make install
|
||||
|
||||
clean:
|
||||
$(Q)rm -rf $(BUILDDIR)
|
||||
|
|
|
@ -308,4 +308,35 @@ macro(engine_add_executable)
|
|||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(RESOURCE_DIRS ${ROOT_DIR}/data/${_EXE_TARGET} ${ROOT_DIR}/data/shared)
|
||||
|
||||
# by default, put system related files into the current binary dir on install
|
||||
set(SHARE_DIR ".")
|
||||
# by default, put data files into the current binary dir on install
|
||||
set(GAMES_DIR "${_EXE_TARGET}")
|
||||
# by default, put the binary into a subdir with the target name
|
||||
set(BIN_DIR "${_EXE_TARGET}")
|
||||
set(ICON_DIR ".")
|
||||
|
||||
if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
set(SHARE_DIR "share")
|
||||
set(GAMES_DIR "${SHARE_DIR}/${_EXE_TARGET}")
|
||||
set(ICON_DIR "${SHARE_DIR}/icons")
|
||||
set(BIN_DIR "games")
|
||||
configure_file(${ROOT_DIR}/contrib/installer/linux/desktop.in ${PROJECT_BINARY_DIR}/${_EXE_TARGET}.desktop)
|
||||
install(FILES ${PROJECT_BINARY_DIR}/${_EXE_TARGET}.desktop DESTINATION ${SHARE_DIR}/applications)
|
||||
endif()
|
||||
|
||||
set(ICON "${_EXE_TARGET}-icon.png")
|
||||
if (EXISTS ${ROOT_DIR}/contrib/${ICON})
|
||||
install(FILES ${ROOT_DIR}/contrib/${ICON} DESTINATION ${ICON_DIR} COMPONENT ${_EXE_TARGET})
|
||||
endif()
|
||||
|
||||
foreach (dir ${RESOURCE_DIRS})
|
||||
if (IS_DIRECTORY ${dir})
|
||||
install(DIRECTORY ${dir} DESTINATION ${GAMES_DIR}/ COMPONENT ${_EXE_TARGET})
|
||||
endif()
|
||||
endforeach()
|
||||
install(TARGETS ${_EXE_TARGET} DESTINATION ${BIN_DIR} COMPONENT ${_EXE_TARGET})
|
||||
endmacro()
|
||||
|
|
|
@ -0,0 +1,37 @@
|
|||
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||
#set(CPACK_COMPONENTS_ALL_IN_ONE_PACKAGE ON)
|
||||
set(CPACK_PACKAGE_VENDOR "FooBar")
|
||||
set(CPACK_PACKAGE_CONTACT "http://www.foobar.de")
|
||||
#set(CPACK_RESOURCE_FILE_LICENSE ${ROOT_DIR}/LICENSE)
|
||||
set(CPACK_SYSTEM_NAME ${CMAKE_SYSTEM_NAME})
|
||||
set(CPACK_SOURCE_IGNORE_FILES "~$")
|
||||
|
||||
if (UNIX)
|
||||
set(CPACK_GENERATOR "TGZ;TBZ2")
|
||||
find_host_program(RPMBUILD rpmbuild)
|
||||
if (RPMBUILD)
|
||||
list(APPEND CPACK_GENERATOR RPM)
|
||||
set(CPACK_RPM_COMPONENT_INSTALL ON)
|
||||
set(CPACK_RPM_PACKAGE_LICENSE GPL)
|
||||
set(CPACK_RPM_PACKAGE_REQUIRES)
|
||||
endif()
|
||||
find_host_program(DPKG dpkg)
|
||||
if (DPKG)
|
||||
list(APPEND CPACK_GENERATOR DEB)
|
||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||
set(CPACK_DEBIAN_PACKAGE_SECTION games)
|
||||
set(CPACK_DEBIAN_PACKAGE_MAINTAINER ${CPACK_PACKAGE_VENDOR})
|
||||
endif()
|
||||
find_host_program(NSIS nsisbuild)
|
||||
if (NSIS)
|
||||
list(APPEND CPACK_GENERATOR NSIS)
|
||||
set(CPACK_NSIS_COMPRESSOR bzip2)
|
||||
set(CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_CONTACT})
|
||||
endif()
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ")
|
||||
elseif (WINDOWS)
|
||||
set(CPACK_GENERATOR "NSIS")
|
||||
set(CPACK_SOURCE_GENERATOR "ZIP")
|
||||
set(CPACK_NSIS_COMPRESSOR bzip2)
|
||||
set(CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_CONTACT})
|
||||
endif()
|
|
@ -0,0 +1,11 @@
|
|||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=@_EXE_TARGET@ @VERSION@
|
||||
GenericName=@_EXE_TARGET@
|
||||
Comment=@DESCRIPTION@
|
||||
Exec=@_EXE_TARGET@
|
||||
Icon=@_EXE_TARGET@
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Categories=Game;
|
||||
StartupNotify=true
|
Loading…
Reference in New Issue