cmake: Add CPack Package Generation

Generates zips only at the moment
This commit is contained in:
Ronald Kinard 2015-01-28 16:42:05 -06:00
parent 1c9de50ad2
commit 53799eb390
4 changed files with 86 additions and 13 deletions

View File

@ -65,6 +65,27 @@ if(${CMAKE_SYSTEM} MATCHES "Darwin")
endif()
endif()
# TODO support MacOSX builds
# Set EXE names so the assets CMakeLists can refer to its target
set(SRB2_SDL2_EXE_NAME srb2)
set(SRB2_WIN_EXE_NAME srb2dd)
add_subdirectory(src/)
add_subdirectory(src)
add_subdirectory(assets)
##### PACKAGE CONFIGURATION #####
if(${CMAKE_SYSTEM} MATCHES "Windows")
set(CPACK_GENERATOR "ZIP")
endif()
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Sonic Robo Blast 2")
set(CPACK_PACKAGE_VENDOR "Sonic Team Jr.")
#set(CPACK_PACKAGE_DESCRIPTION_FILE )
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
set(CPACK_PACKAGE_VERSION_MAJOR ${SRB2_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${SRB2_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${SRB2_VERSION_PATCH})
set(CPACK_PACKAGE_INSTALL_DIRECTORY "CMake ${CMAKE_VERSION_MAJOR}.${CMAKE_VERSION_MINOR}")
include(CPack)

29
assets/CMakeLists.txt Normal file
View File

@ -0,0 +1,29 @@
## Assets Target Configuration ##
# MD5 generation
set(SRB2_ASSET_ALL
${CMAKE_CURRENT_SOURCE_DIR}/srb2.srb
${CMAKE_CURRENT_SOURCE_DIR}/player.dta
${CMAKE_CURRENT_SOURCE_DIR}/rings.dta
${CMAKE_CURRENT_SOURCE_DIR}/zones.dta
${CMAKE_CURRENT_SOURCE_DIR}/patch.dta
${CMAKE_CURRENT_SOURCE_DIR}/music.dta
)
set(SRB2_ASSET_HASHED
${CMAKE_CURRENT_SOURCE_DIR}/srb2.srb
${CMAKE_CURRENT_SOURCE_DIR}/player.dta
${CMAKE_CURRENT_SOURCE_DIR}/rings.dta
${CMAKE_CURRENT_SOURCE_DIR}/zones.dta
${CMAKE_CURRENT_SOURCE_DIR}/patch.dta
)
foreach(SRB2_ASSET ${SRB2_ASSET_HASHED})
file(MD5 ${SRB2_ASSET} "SRB2_ASSET_${SRB2_ASSET}_HASH")
endforeach()
# Installation
install(FILES ${SRB2_ASSET_ALL}
DESTINATION .
)

View File

@ -42,15 +42,6 @@ set(SRB2_SDL2_HEADERS
prepend_sources(SRB2_SDL2_SOURCES)
prepend_sources(SRB2_SDL2_HEADERS)
# Binary name
set(SRB2_SDL2_EXE_NAME srb2sdl2)
if(${CMAKE_SYSTEM} MATCHES "Windows")
set(SRB2_SDL2_EXE_NAME srb2win)
endif()
if(CLANG)
set(SRB2_SDL2_EXE_NAME SRB2)
endif()
# Dependency
find_package(SDL2)
@ -160,6 +151,40 @@ if(${SDL2_FOUND})
-DHAVE_SDL
-DNDEBUG
)
#### Installation ####
install(TARGETS ${SRB2_SDL2_EXE_NAME} ${SRB2_SDL2_EXE_NAME}
RUNTIME DESTINATION .
)
if(${CMAKE_SYSTEM} MATCHES Windows)
find_library(SRB2_SDL2_DLL_SDL2 "SDL2.dll")
if(${SRB2_CONFIG_SDL2_USEMIXER})
find_library(SRB2_SDL2_DLL_SDL2_mixer "SDL2_mixer.dll")
find_library(SRB2_SDL2_DLL_libmikmod-2 "libmikmod-2.dll")
find_library(SRB2_SDL2_DLL_libogg_0 "libogg-0.dll")
find_library(SRB2_SDL2_DLL_libvorbis_0 "libvorbis-0.dll")
find_library(SRB2_SDL2_DLL_libvorbisfile_3 "libvorbisfile-3.dll")
find_library(SRB2_SDL2_DLL_smpeg2 "smpeg2.dll")
endif()
if(${SRB2_CONFIG_HAVE_GME})
find_library(SRB2_SDL2_DLL_libgme "libgme.dll")
endif()
install(PROGRAMS
${SRB2_SDL2_DLL_SDL2}
${SRB2_SDL2_DLL_SDL2_mixer}
${SRB2_SDL2_DLL_libmikmod}
${SRB2_SDL2_DLL_libogg_0}
${SRB2_SDL2_DLL_libvorbis_0}
${SRB2_SDL2_DLL_libvorbisfile_3}
${SRB2_SDL2_DLL_smpeg2}
${SRB2_SDL2_DLL_libgme}
DESTINATION .
)
endif()
else()
message(WARNING "SDL2 wasn't found, so ${SRB2_SDL2_EXE_NAME} won't be available")
endif()

View File

@ -1,5 +1,3 @@
set(SRB2_WIN_EXE_NAME srb2dd)
add_executable(${SRB2_WIN_EXE_NAME} EXCLUDE_FROM_ALL
${SRB2_CORE_SOURCES}
${SRB2_CORE_HEADERS}