-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
37 lines (30 loc) · 1.71 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
cmake_minimum_required(VERSION 3.30)
project(Iris VERSION 0.10.0 LANGUAGES CXX DESCRIPTION "Automatic Screen Brightness Adjustment Utility")
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_INSTALL_RPATH $<INSTALL_INTERFACE:${CMAKE_INSTALL_LIBDIR}>)
find_package(Boost 1.80.0 CONFIG COMPONENTS system program_options REQUIRED)
# build
file(GLOB source_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/*.cpp)
add_executable(adjust-brightness ${source_files})
target_include_directories(adjust-brightness PRIVATE $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>)
target_link_libraries(adjust-brightness PRIVATE Boost::program_options)
target_compile_definitions(adjust-brightness PRIVATE -D PROGRAM_VERSION="${CMAKE_PROJECT_VERSION}")
# test
enable_testing()
# install
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/AdjustBrightnessVersion.cmake COMPATIBILITY SameMajorVersion)
install(TARGETS adjust-brightness RUNTIME CONFIGURATIONS Release MinSizeRel)
# pack
set(CPACK_PACKAGE_VENDOR "Brian Salehi <briansalehi@proton.me>")
set(CPACK_PACKAGE_CONTACT "briansalehi@proton.me")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${CMAKE_PROJECT_DESCRIPTION})
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/packages)
string(TOLOWER "${CMAKE_PROJECT_NAME}" CPACK_PACKAGE_NAME)
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CMAKE_PROJECT_VERSION}")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "libboost-system-dev (>= 1.80.0), libboost-program-options-dev (>= 1.80.0)")
set(CPACK_RPM_PACKAGE_REQUIRES "boost-system >= 1.80.0, boost-program-options >= 1.80.0")
include(CPack)