Cmake reorganization
* Move all cmake-related files in a new “cmake” folder * move nsis files in there, too, since they are templates parsed by cake * retrieve git version once when cmake is run, and use it for both creating version_string.h/cpp and for package naming
This commit is contained in:
parent
e997b1d2bc
commit
fc24ffdec2
11 changed files with 40 additions and 48 deletions
|
@ -20,12 +20,8 @@ if(POLICY CMP0048)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(PROJECT_NAME "Cockatrice")
|
set(PROJECT_NAME "Cockatrice")
|
||||||
set(PROJECT_VERSION_MAJOR 0)
|
|
||||||
set(PROJECT_VERSION_MINOR 0)
|
|
||||||
set(PROJECT_VERSION_PATCH 1)
|
|
||||||
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} )
|
|
||||||
|
|
||||||
# Defualt to "Release" build type
|
# Default to "Release" build type
|
||||||
# User-provided value for CMAKE_BUILD_TYPE must be checked before the PROJECT() call
|
# User-provided value for CMAKE_BUILD_TYPE must be checked before the PROJECT() call
|
||||||
IF(DEFINED CMAKE_BUILD_TYPE)
|
IF(DEFINED CMAKE_BUILD_TYPE)
|
||||||
SET(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Type of build")
|
SET(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "Type of build")
|
||||||
|
@ -36,9 +32,19 @@ ENDIF()
|
||||||
# A project name is needed for CPack
|
# A project name is needed for CPack
|
||||||
PROJECT("${PROJECT_NAME}")
|
PROJECT("${PROJECT_NAME}")
|
||||||
|
|
||||||
|
|
||||||
# Set conventional loops
|
# Set conventional loops
|
||||||
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
|
||||||
|
|
||||||
|
# Search path for cmake modules
|
||||||
|
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
|
# Retrieve git version hash
|
||||||
|
include(getversion)
|
||||||
|
|
||||||
|
# Create a header and a cpp file containing the version hash
|
||||||
|
include(createversionfile)
|
||||||
|
|
||||||
# Define a proper install path
|
# Define a proper install path
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
@ -109,8 +115,8 @@ FIND_PACKAGE(Protobuf REQUIRED)
|
||||||
set(CPACK_PACKAGE_CONTACT "Daenyth+github@gmail.com")
|
set(CPACK_PACKAGE_CONTACT "Daenyth+github@gmail.com")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME})
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_NAME})
|
||||||
set(CPACK_PACKAGE_VENDOR "Cockatrice Development Team")
|
set(CPACK_PACKAGE_VENDOR "Cockatrice Development Team")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
|
set(CPACK_PACKAGE_DESCRIPTION_FILE "${PROJECT_SOURCE_DIR}/README.md")
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
|
set(CPACK_RESOURCE_FILE_LICENSE "${PROJECT_SOURCE_DIR}/COPYING")
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
set(CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}")
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
set(CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}")
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
set(CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}")
|
||||||
|
@ -133,17 +139,10 @@ if(UNIX)
|
||||||
endif()
|
endif()
|
||||||
elseif(WIN32)
|
elseif(WIN32)
|
||||||
set(CPACK_GENERATOR NSIS ${CPACK_GENERATOR})
|
set(CPACK_GENERATOR NSIS ${CPACK_GENERATOR})
|
||||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${PROJECT_NAME}\\\\${PROJECT_VERSION}")
|
|
||||||
set(CPACK_NSIS_INSTALLED_ICON_NAME "bin\\\\${PROJECT_NAME}.exe")
|
|
||||||
set(CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_INSTALL_DIRECTORY} ${PROJECT_NAME}")
|
|
||||||
set(CPACK_NSIS_HELP_LINK "https://github.com/Daenyth/Cockatrice")
|
|
||||||
set(CPACK_NSIS_URL_INFO_ABOUT "https://github.com/Daenyth/Cockatrice")
|
|
||||||
set(CPACK_NSIS_CONTACT "Daenyth+github@gmail.com")
|
|
||||||
set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/nsis")
|
|
||||||
|
|
||||||
# Configure file with custom definitions for NSIS.
|
# Configure file with custom definitions for NSIS.
|
||||||
configure_file(
|
configure_file(
|
||||||
${PROJECT_SOURCE_DIR}/nsis/NSIS.definitions.nsh.in
|
${CMAKE_MODULE_PATH}/NSIS.definitions.nsh.in
|
||||||
${PROJECT_BINARY_DIR}/NSIS.definitions.nsh
|
${PROJECT_BINARY_DIR}/NSIS.definitions.nsh
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -11,11 +11,11 @@ SetCompressor /SOLID lzma
|
||||||
InstallDir "$PROGRAMFILES\Cockatrice"
|
InstallDir "$PROGRAMFILES\Cockatrice"
|
||||||
|
|
||||||
!define MUI_ABORTWARNING
|
!define MUI_ABORTWARNING
|
||||||
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\nsis\leftimage.bmp"
|
!define MUI_WELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\leftimage.bmp"
|
||||||
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\nsis\leftimage.bmp"
|
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\leftimage.bmp"
|
||||||
!define MUI_HEADERIMAGE
|
!define MUI_HEADERIMAGE
|
||||||
!define MUI_HEADERIMAGE_BITMAP "${NSIS_SOURCE_PATH}\nsis\headerimage.bmp"
|
!define MUI_HEADERIMAGE_BITMAP "${NSIS_SOURCE_PATH}\cmake\headerimage.bmp"
|
||||||
!define MUI_HEADERIMAGE_UNBITMAP "${NSIS_SOURCE_PATH}\nsis\headerimage.bmp"
|
!define MUI_HEADERIMAGE_UNBITMAP "${NSIS_SOURCE_PATH}\cmake\headerimage.bmp"
|
||||||
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Cockatrice.$\r$\n$\r$\nClick Next to continue."
|
!define MUI_WELCOMEPAGE_TEXT "This wizard will guide you through the installation of Cockatrice.$\r$\n$\r$\nClick Next to continue."
|
||||||
!define MUI_FINISHPAGE_RUN "$INSTDIR/oracle.exe"
|
!define MUI_FINISHPAGE_RUN "$INSTDIR/oracle.exe"
|
||||||
!define MUI_FINISHPAGE_RUN_TEXT "Run card database downloader now"
|
!define MUI_FINISHPAGE_RUN_TEXT "Run card database downloader now"
|
17
cmake/createversionfile.cmake
Normal file
17
cmake/createversionfile.cmake
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
set(VERSION_STRING_CPP "${PROJECT_BINARY_DIR}/version_string.cpp")
|
||||||
|
set(VERSION_STRING_H "${PROJECT_BINARY_DIR}/version_string.h")
|
||||||
|
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR})
|
||||||
|
|
||||||
|
set( hstring "extern const char *VERSION_STRING\;\n" )
|
||||||
|
set( cppstring "const char * VERSION_STRING = \"${PROJECT_VERSION}\"\;\n")
|
||||||
|
|
||||||
|
file(WRITE ${PROJECT_BINARY_DIR}/version_string.cpp.txt ${cppstring} )
|
||||||
|
file(WRITE ${PROJECT_BINARY_DIR}/version_string.h.txt ${hstring} )
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/version_string.h.txt ${VERSION_STRING_H}
|
||||||
|
)
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_BINARY_DIR}/version_string.cpp.txt ${VERSION_STRING_CPP}
|
||||||
|
)
|
||||||
|
|
|
@ -15,15 +15,5 @@ else()
|
||||||
message( WARNING "Git not found. Build will not contain git revision info." )
|
message( WARNING "Git not found. Build will not contain git revision info." )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set( hstring "extern const char *VERSION_STRING\;\n" )
|
set(PROJECT_VERSION_MAJOR ${GIT_COMMIT_ID})
|
||||||
set( cppstring "const char * VERSION_STRING = \"${GIT_COMMIT_ID}\"\;\n")
|
set(PROJECT_VERSION ${GIT_COMMIT_ID} )
|
||||||
|
|
||||||
file(WRITE version_string.cpp.txt ${cppstring} )
|
|
||||||
file(WRITE version_string.h.txt ${hstring} )
|
|
||||||
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different version_string.h.txt ${CMAKE_CURRENT_BINARY_DIR}/version_string.h
|
|
||||||
)
|
|
||||||
execute_process(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different version_string.cpp.txt ${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
|
|
||||||
)
|
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 201 KiB After Width: | Height: | Size: 201 KiB |
|
@ -90,7 +90,7 @@ SET(cockatrice_SOURCES
|
||||||
src/qt-json/json.cpp
|
src/qt-json/json.cpp
|
||||||
src/soundengine.cpp
|
src/soundengine.cpp
|
||||||
src/pending_command.cpp
|
src/pending_command.cpp
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
|
${VERSION_STRING_CPP}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (UNIX AND NOT APPLE)
|
if (UNIX AND NOT APPLE)
|
||||||
|
@ -130,9 +130,8 @@ set(COCKATRICE_LIBS)
|
||||||
# Qt4 stuff
|
# Qt4 stuff
|
||||||
if(Qt4_FOUND)
|
if(Qt4_FOUND)
|
||||||
if (NOT QT_QTMULTIMEDIA_FOUND)
|
if (NOT QT_QTMULTIMEDIA_FOUND)
|
||||||
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
FIND_PACKAGE(QtMobility REQUIRED)
|
FIND_PACKAGE(QtMobility REQUIRED)
|
||||||
endif (NOT QT_QTMULTIMEDIA_FOUND)
|
endif()
|
||||||
|
|
||||||
SET(QT_USE_QTNETWORK TRUE)
|
SET(QT_USE_QTNETWORK TRUE)
|
||||||
SET(QT_USE_QTMULTIMEDIA TRUE)
|
SET(QT_USE_QTMULTIMEDIA TRUE)
|
||||||
|
@ -257,11 +256,6 @@ elseif(WIN32)
|
||||||
INSTALL(FILES ${cockatrice_QM} DESTINATION ./translations)
|
INSTALL(FILES ${cockatrice_QM} DESTINATION ./translations)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp ${CMAKE_CURRENT_BINARY_DIR}/version_string.h
|
|
||||||
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/../common/getversion.cmake
|
|
||||||
)
|
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
# these needs to be relative to CMAKE_INSTALL_PREFIX
|
# these needs to be relative to CMAKE_INSTALL_PREFIX
|
||||||
set(plugin_dest_dir cockatrice.app/Contents/Plugins)
|
set(plugin_dest_dir cockatrice.app/Contents/Plugins)
|
||||||
|
|
|
@ -4,8 +4,6 @@
|
||||||
|
|
||||||
PROJECT(servatrice)
|
PROJECT(servatrice)
|
||||||
|
|
||||||
# cmake module for libgcrypt is included in current directory
|
|
||||||
SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
|
||||||
FIND_PACKAGE(Libgcrypt REQUIRED)
|
FIND_PACKAGE(Libgcrypt REQUIRED)
|
||||||
|
|
||||||
SET(servatrice_SOURCES
|
SET(servatrice_SOURCES
|
||||||
|
@ -17,7 +15,7 @@ SET(servatrice_SOURCES
|
||||||
src/server_logger.cpp
|
src/server_logger.cpp
|
||||||
src/serversocketinterface.cpp
|
src/serversocketinterface.cpp
|
||||||
src/isl_interface.cpp
|
src/isl_interface.cpp
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
|
${VERSION_STRING_CPP}
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SERVATRICE_LIBS)
|
set(SERVATRICE_LIBS)
|
||||||
|
@ -85,12 +83,6 @@ if(Qt5Widgets_FOUND)
|
||||||
qt5_use_modules(servatrice ${SERVATRICE_LIBS})
|
qt5_use_modules(servatrice ${SERVATRICE_LIBS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#add_custom_target(versionheader ALL DEPENDS version_header)
|
|
||||||
add_custom_command(
|
|
||||||
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/version_string.h ${CMAKE_CURRENT_BINARY_DIR}/version_string.cpp
|
|
||||||
COMMAND ${CMAKE_COMMAND} -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR} -P ${CMAKE_CURRENT_SOURCE_DIR}/../common/getversion.cmake
|
|
||||||
)
|
|
||||||
|
|
||||||
# install rules
|
# install rules
|
||||||
if(UNIX)
|
if(UNIX)
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
|
|
Loading…
Reference in a new issue