cmake_minimum_required(VERSION 3.25) project(sc3dev VERSION 1.1.3 LANGUAGES CXX HOMEPAGE_URL "https://git.wntrmute.dev/sc/sc3dev" DESCRIPTION "") set(CMAKE_CXX_STANDARD 17) set(CMAKE_VERBOSE_MAKEFILES ON) find_package(scsl REQUIRED) include(FindPkgConfig) pkg_check_modules(CURLPP REQUIRED curlpp) if (CURLPP_FOUND) message(STATUS "Found CURL version: ${CURLPP_VERSION_STRING}") message(STATUS "Using CURL include dir(s): ${CURLPP_INCLUDE_DIRS}") message(STATUS "Using CURL lib(s): ${CURLPP_LIBRARIES}") endif () include(CTest) enable_testing() # compile options: # -Wall Default to all errors. # -Wextra And a few extra. # -Werror And require them to be fixed to build. # -Wno-unused-function This is a library. Not every function is used here. # -Wno-unused-parameter Some functions have parameters defined for compatibility, # and aren't used in the implementation. add_compile_options( "-static" "-Wall" "-Wextra" "-Werror" "-Wno-unused-function" "-Wno-unused-parameter" "-g" "$<$:-O2>" ) if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") add_compile_options("-stdlib=libc++") else () # nothing special for gcc at the moment endif () add_compile_definitions(SCSL_DESKTOP_BUILD) set(HEADERS include/Debian.h include/RPM.h include/Generic.h include/Utility.h ) set(SOURCES src/Debian.cc src/RPM.cc src/Generic.cc src/Utility.cc ) file(GLOB SCRIPTS *.sh) file(GLOB_RECURSE CONTAINERFILES Containerfile*) include_directories(SYSTEM include) include_directories(SYSTEM ${CURLPP_INCLUDE_DIRS}) ### THE REAL TARGETS ### add_executable(${PROJECT_NAME}-packager src/packager.cc ${SOURCES} ${HEADERS}) target_link_libraries(${PROJECT_NAME}-packager ${SCSL_LIBRARIES} ${CURLPP_LIBRARIES}) ### INCLUDES ### include(cmake/docs.cmake) include(cmake/install.cmake) include(cmake/packaging.cmake)