mirror of
https://github.com/audacity/linuxdeploy.git
synced 2025-12-10 03:56:50 -06:00
58 lines
1.7 KiB
CMake
58 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 3.2)
|
|
|
|
project(linuxdeploy C CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/cmake/Modules/")
|
|
|
|
# support for ccache
|
|
# call CMake with -DUSE_CCACHE=ON to make use of it
|
|
set(USE_CCACHE ON CACHE BOOL "")
|
|
if(USE_CCACHE)
|
|
find_program(CCACHE ccache)
|
|
if(CCACHE)
|
|
message(STATUS "Using ccache")
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ${CCACHE})
|
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ${CCACHE})
|
|
else()
|
|
message(WARNING "USE_CCACHE set, but could not find ccache")
|
|
endif()
|
|
endif()
|
|
|
|
set(ENABLE_COVERAGE OFF CACHE BOOL "Enable coverage measurements")
|
|
if(ENABLE_COVERAGE)
|
|
include(CodeCoverage)
|
|
message(WARNING "Enabling code coverage measurements -> disables optimizations and embeds debug information!")
|
|
|
|
append_coverage_compiler_flags()
|
|
|
|
set(COVERAGE_GCOVR_EXCLUDES ${PROJECT_SOURCE_DIR}/lib ${PROJECT_BINARY_DIR})
|
|
|
|
include(ProcessorCount)
|
|
ProcessorCount(processor_count)
|
|
|
|
set(command cmake --build . --target all -- -j ${processor_count} && ctest -V)
|
|
|
|
setup_target_for_coverage_gcovr_html(NAME coverage EXECUTABLE "${command}")
|
|
setup_target_for_coverage_gcovr_xml(NAME coverage_xml EXECUTABLE "${command}")
|
|
setup_target_for_coverage_gcovr_text(NAME coverage_text EXECUTABLE "${command}")
|
|
endif()
|
|
|
|
include(CTest)
|
|
|
|
if(BUILD_TESTING)
|
|
# including this before including lib/ makes sure that the top level project's gtest is used everywhere
|
|
include(${PROJECT_SOURCE_DIR}/lib/cmake-scripts/include-or-build-gtest.cmake)
|
|
endif()
|
|
|
|
add_subdirectory(lib)
|
|
|
|
add_subdirectory(src)
|
|
|
|
if(BUILD_TESTING)
|
|
enable_testing()
|
|
add_subdirectory(tests)
|
|
endif()
|