diff options
| author | PancakeTAS <pancake@mgnet.work> | 2026-05-18 15:52:13 +0200 |
|---|---|---|
| committer | PancakeTAS <pancake@mgnet.work> | 2026-06-23 21:20:32 +0200 |
| commit | 06de7bd1ec3818612752bb7be591baa3c867f128 (patch) | |
| tree | 629911883e44d5db9021526463bca09bb4b3f140 /CMakeLists.txt | |
| parent | Split public/private API into respective locations (diff) | |
Refactor buildscript
Diffstat (limited to '')
| -rw-r--r-- | CMakeLists.txt | 59 |
1 files changed, 19 insertions, 40 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ac3bd8..d2d5b7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,47 +1,26 @@ -cmake_minimum_required(VERSION 4.0) -list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") +cmake_minimum_required(VERSION 3.10) -project(drm++ LANGUAGES CXX) +project(drm++ + DESCRIPTION "C++ wrapper around the Linux DRM API" + VERSION 0.1.0 + LANGUAGES CXX) -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_VISIBILITY_PRESET hidden) +include(cmake/Diagnostics.cmake) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) -set(CMAKE_SKIP_RPATH ON) +add_library(drm++ SHARED + "src/ioctl.cpp" + "src/syncobject.cpp") -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +target_include_directories(drm++ + PUBLIC include) - if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - message(STATUS "Building with clang-specific diagnostics") +target_include_directories(drm++ SYSTEM + PRIVATE uapi) - set(CMAKE_CXX_CLANG_TIDY clang-tidy) # See .clang-tidy files +set_target_properties(drm++ PROPERTIES + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED ON + CXX_VISIBILITY_PRESET hidden) - add_compile_options( - # By default, enable all warnings - -Weverything - # Some warnings are incompatible with each other - -Wno-pre-c++20-compat-pedantic - -Wno-c++98-compat-pedantic - -Wno-switch-default - # Then there's code-style things I don't care about - -Wno-missing-designated-field-initializers - -Wno-shadow - # And functional warning I don't care about either - -Wno-cast-function-type-strict - -Wno-padded - # Due to C/C++ interop - -Wno-unsafe-buffer-usage - ) - endif() -endif() - -set(SOURCES - "src/priv/ioctl.cpp" - "src/syncobject.cpp" - "src/main.cpp") - -add_executable(drm++ ${SOURCES}) -target_include_directories(drm++ PUBLIC include) -target_include_directories(drm++ SYSTEM PRIVATE uapi) +set_target_properties(drm++ PROPERTIES + SKIP_RPATH ON) |
