kima2/CMakeLists.txt

60 lines
1.9 KiB
CMake

cmake_minimum_required(VERSION 3.8)
project(kima2 VERSION 0.9.0)
set(CMAKE_MODULE_PATH "${CMAKE_HOME_DIRECTORY}/cmake" ${CMAKE_MODULE_PATH})
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
#include(InstallRequiredSystemLibraries)
if(MSVC)
add_compile_options(/W4 /WX)
else()
add_compile_options(-Wall -Wextra -pedantic -Woverloaded-virtual -Wredundant-decls -Wshadow)
endif()
configure_file(config.h.in ${PROJECT_BINARY_DIR}/config.h)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
add_subdirectory(src)
if(NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES Debug)
include(CTest)
enable_testing()
add_subdirectory(test)
endif()
# CPack
INCLUDE(InstallRequiredSystemLibraries)
set(CPACK_PACKAGE_EXECUTABLES "kima2" "KIMA2")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Ein kleines Kassenprogramm für Kindersachenmärkte")
set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/misc\\\\kima2.svg")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
set(CPACK_PACKAGE_VENDOR "Martin Brodbeck")
set(CPACK_PACKAGE_CONTACT "Martin Brodbeck <info@rustysoft.de>")
set(CPACK_SOURCE_IGNORE_FILES "/.git/;/.vscode")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
if (WIN32 AND NOT UNIX)
set(CPACK_GENERATOR "NSIS;ZIP")
if( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS )
install( PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} DESTINATION bin COMPONENT System )
endif( CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS )
else(WIN32 AND NOT UNIX)
set(CPACK_SOURCE_GENERATOR "TBZ2")
set(CPACK_GENERATOR "RPM;DEB")
set(CPACK_STRIP_FILES "bin/kima2")
set(CPACK_SOURCE_STRIP_FILES "")
endif (WIN32 AND NOT UNIX)
include(CPack)