diff --git a/CMakeLists.txt b/CMakeLists.txt index f55ffcf..a74ec11 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,8 @@ project(kge VERSION 0.0.1) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_VERBOSE_MAKEFILES TRUE) +set(VERBOSE YES) string(TIMESTAMP TODAY "%Y%m%d") @@ -67,6 +69,7 @@ if(${BUILD_GUI}) configure_file(resources/kge.desktop.in kge.desktop @ONLY) add_executable(kge gmain.cc ${SOURCE_FILES} ${HEADER_FILES}) target_link_libraries(kge imgui) + add_dependencies(kge ke) configure_file(docs/kge.md kge.1.scdoc @ONLY) add_custom_command(TARGET manpages COMMAND scdoc < kge.1.scdoc > kge.1 @@ -87,25 +90,20 @@ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ke.1 COMPONENT nox) if(${BUILD_GUI}) - install(TARGETS ke - DESTINATION bin - COMPONENT dist) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ke.1 - DESTINATION share/man/man1 - COMPONENT dist) install(TARGETS kge DESTINATION bin COMPONENT nox - COMPONENT dist) + COMPONENT gui) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kge.desktop DESTINATION share/applications - COMPONENT dist) + COMPONENT gui) install(FILES resources/kge.png DESTINATION share/${PROJECT_NAME} - COMPONENT dist) + COMPONENT gui) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kge.1 DESTINATION share/man/man1 - COMPONENT dist) + COMPONENT gui) endif() + include(cmake/packaging.cmake) diff --git a/cmake/packaging.cmake b/cmake/packaging.cmake index baf6ae1..0ee61a3 100644 --- a/cmake/packaging.cmake +++ b/cmake/packaging.cmake @@ -1,25 +1,45 @@ # Packaging support include(InstallRequiredSystemLibraries) +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + set(CPACK_DEBIAN_PACKAGE_DEBUG ON) +endif() + set(CPACK_PACKAGE_VENDOR "Shimmering Clarity") set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "kyle's editor") set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}) set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR}) set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH}) -# Debian settings -set(CPACK_DEBIAN_PACKAGE_MAINTAINER "K. Isom") -set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "kyle's editor") -set(CPACK_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) +################### +### DEBIANESQUE ### +################### if(${BUILD_GUI}) -set(CPACK_DEBIAN_PACKAGE_DEPENDS - "libsdl2-2.0-0, libfreetype6 (>= 2.11.1)" -) + set(CPACK_COMPONENTS_ALL gui nox) +else() + set(CPACK_COMPONENTS_ALL nox) endif() + +set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) +set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) set(CPACK_DEBIAN_PACKAGE_SECTION universe/editors) set(CPACK_DEB_COMPONENT_INSTALL ON) -set(CPACK_COMPONENTS_ALL dist nox) -set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP) + +set(CPACK_DEBIAN_PACKAGE_MAINTAINER "K. Isom") +set(CPACK_PACKAGE_nox_DESCRIPTION_SUMMARY "kyle's editor") +set(CPACK_PACKAGE_nox_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION}) +set(CPACK_PACKAGE_nox_PACKAGE_NAME "kge") +set(CPACK_DEBIAN_nox_PACKAGE_NAME "ke") + +if(BUILD_GUI) + set(CPACK_PACKAGE_gui_PACKAGE_NAME "kge") + set(CPACK_DEBIAN_gui_PACKAGE_NAME "kge") + set(CPACK_PACKAGE_gui_DESCRIPTION_SUMMARY " graphical front-end for kyle's editor") + set(CPACK_PACKAGE_gui_DESCRIPTION "graphical front-end for ${CPACK_PACKAGE_DESCRIPTION} ") +endif() +set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON) +set(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS ON) + if(LINUX) set(CPACK_GENERATOR "DEB;STGZ;TGZ") @@ -31,7 +51,7 @@ else() set(CPACK_GENERATOR "ZIP") endif() -set(CPACK_SOURCE_GENERATOR "TGZ;ZIP") +set(CPACK_SOURCE_GENERATOR "TGZ;ZIP ") set(CPACK_SOURCE_IGNORE_FILES /.git /.idea @@ -39,3 +59,4 @@ set(CPACK_SOURCE_IGNORE_FILES /.*build.*) include(CPack) +cpack_add_component(gui DEPENDS nox) \ No newline at end of file