mirror of
https://github.com/CLIUtils/CLI11.git
synced 2025-05-02 13:43:52 +00:00
Slighly cleaner usage with add_subdirectory
This commit is contained in:
parent
32153f2f6d
commit
b4b7d991f6
@ -13,10 +13,11 @@ project(CLI11 LANGUAGES CXX VERSION ${VERSION_STRING})
|
|||||||
|
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
||||||
|
|
||||||
# User settable
|
# Only if built as the main project
|
||||||
set(CLI_CXX_STD "11" CACHE STRING "The CMake standard to require")
|
|
||||||
|
|
||||||
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||||
|
# User settable
|
||||||
|
set(CLI_CXX_STD "11" CACHE STRING "The CMake standard to require")
|
||||||
|
|
||||||
set(CUR_PROJ ON)
|
set(CUR_PROJ ON)
|
||||||
set(CMAKE_CXX_STANDARD ${CLI_CXX_STD})
|
set(CMAKE_CXX_STANDARD ${CLI_CXX_STD})
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
@ -28,6 +29,24 @@ if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
|||||||
else()
|
else()
|
||||||
add_definitions("-Wall -Wextra -pedantic")
|
add_definitions("-Wall -Wextra -pedantic")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMAKE_VERSION VERSION_GREATER 3.6)
|
||||||
|
# Add clang-tidy if available
|
||||||
|
option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF)
|
||||||
|
find_program(
|
||||||
|
CLANG_TIDY_EXE
|
||||||
|
NAMES "clang-tidy"
|
||||||
|
DOC "Path to clang-tidy executable"
|
||||||
|
)
|
||||||
|
|
||||||
|
if(CLANG_TIDY_EXE)
|
||||||
|
if(CLANG_TIDY_FIX)
|
||||||
|
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-fix")
|
||||||
|
else()
|
||||||
|
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
set(CUR_PROJ OFF)
|
set(CUR_PROJ OFF)
|
||||||
endif()
|
endif()
|
||||||
@ -35,25 +54,6 @@ endif()
|
|||||||
# Allow IDE's to group targets into folders
|
# Allow IDE's to group targets into folders
|
||||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||||
|
|
||||||
if(CMAKE_VERSION VERSION_GREATER 3.6)
|
|
||||||
# Add clang-tidy if available
|
|
||||||
option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF)
|
|
||||||
find_program(
|
|
||||||
CLANG_TIDY_EXE
|
|
||||||
NAMES "clang-tidy"
|
|
||||||
DOC "Path to clang-tidy executable"
|
|
||||||
)
|
|
||||||
|
|
||||||
if(CLANG_TIDY_EXE)
|
|
||||||
if(CLANG_TIDY_FIX)
|
|
||||||
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}" "-fix")
|
|
||||||
else()
|
|
||||||
set(DO_CLANG_TIDY "${CLANG_TIDY_EXE}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
|
|
||||||
if(CMAKE_BUILD_TYPE STREQUAL Coverage)
|
if(CMAKE_BUILD_TYPE STREQUAL Coverage)
|
||||||
include(CodeCoverage)
|
include(CodeCoverage)
|
||||||
setup_target_for_coverage(CLI_coverage ctest coverage)
|
setup_target_for_coverage(CLI_coverage ctest coverage)
|
||||||
@ -118,7 +118,7 @@ else()
|
|||||||
set(CLI_SINGLE_FILE_DEFAULT OFF)
|
set(CLI_SINGLE_FILE_DEFAULT OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(CLI_SINGLE_FILE "Generate a single header file (and test)" ${CLI_SINGLE_FILE_DEFAULT})
|
option(CLI_SINGLE_FILE "Generate a single header file" ${CLI_SINGLE_FILE_DEFAULT})
|
||||||
if(CLI_SINGLE_FILE)
|
if(CLI_SINGLE_FILE)
|
||||||
find_package(PythonInterp REQUIRED)
|
find_package(PythonInterp REQUIRED)
|
||||||
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/include")
|
||||||
@ -151,6 +151,10 @@ if(CLI_EXAMPLES)
|
|||||||
add_subdirectory(examples)
|
add_subdirectory(examples)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT CUR_PROJ)
|
||||||
|
mark_as_advanced(CLI_SINGLE_FILE_TESTS CLI_EXAMPLES CLI_TESTING)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Packaging support
|
# Packaging support
|
||||||
set(CPACK_PACKAGE_VENDOR "github.com/CLIUtils/CLI11")
|
set(CPACK_PACKAGE_VENDOR "github.com/CLIUtils/CLI11")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Command line interface")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Command line interface")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user