From e0bf3f59d1d3148c3a1ee97eb625d0ee7429dd3b Mon Sep 17 00:00:00 2001 From: Dominic Date: Sun, 17 Oct 2021 21:10:52 +0200 Subject: [PATCH] Use ${PROJECT_NAME} instead of writing projectname multiple times (#134) * Remove duplicate mentions of project name and replaced it with ${PROJECT_NAME} variable Update CMakeLists.txt * Added ${CMAKE_PROJECT_NAME} * reverted usage of to Greeter and ran fix-format * Update test/CMakeLists.txt Co-authored-by: Dominic Dinser Co-authored-by: Lars Melchior --- CMakeLists.txt | 14 +++++++------- standalone/CMakeLists.txt | 6 +++--- test/CMakeLists.txt | 13 +++++++------ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b2141d..ccf9add 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -43,20 +43,20 @@ file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/source/ # ---- Create library ---- # Note: for header-only libraries change all PUBLIC flags to INTERFACE and create an interface -# target: add_library(Greeter INTERFACE) -add_library(Greeter ${headers} ${sources}) +# target: add_library(${PROJECT_NAME} INTERFACE) +add_library(${PROJECT_NAME} ${headers} ${sources}) -set_target_properties(Greeter PROPERTIES CXX_STANDARD 17) +set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17) # being a cross-platform target, we enforce standards conformance on MSVC -target_compile_options(Greeter PUBLIC "$<$:/permissive->") +target_compile_options(${PROJECT_NAME} PUBLIC "$<$:/permissive->") # Link dependencies -target_link_libraries(Greeter PRIVATE fmt::fmt) +target_link_libraries(${PROJECT_NAME} PRIVATE fmt::fmt) target_include_directories( - Greeter PUBLIC $ - $ + ${PROJECT_NAME} PUBLIC $ + $ ) # ---- Create an installable target ---- diff --git a/standalone/CMakeLists.txt b/standalone/CMakeLists.txt index 5f11cfd..d98277e 100644 --- a/standalone/CMakeLists.txt +++ b/standalone/CMakeLists.txt @@ -22,8 +22,8 @@ CPMAddPackage(NAME Greeter SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/..) file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp) -add_executable(GreeterStandalone ${sources}) +add_executable(${PROJECT_NAME} ${sources}) -set_target_properties(GreeterStandalone PROPERTIES CXX_STANDARD 17 OUTPUT_NAME "Greeter") +set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17 OUTPUT_NAME "Greeter") -target_link_libraries(GreeterStandalone Greeter::Greeter cxxopts) +target_link_libraries(${PROJECT_NAME} Greeter::Greeter cxxopts) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 68e6cf0..184a2f4 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -27,9 +27,9 @@ endif() # ---- Create binary ---- file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp) -add_executable(GreeterTests ${sources}) -target_link_libraries(GreeterTests doctest::doctest Greeter::Greeter) -set_target_properties(GreeterTests PROPERTIES CXX_STANDARD 17) +add_executable(${PROJECT_NAME} ${sources}) +target_link_libraries(${PROJECT_NAME} doctest::doctest Greeter::Greeter) +set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17) # enable compiler warnings if(NOT TEST_INSTALLED_VERSION) @@ -37,7 +37,7 @@ if(NOT TEST_INSTALLED_VERSION) target_compile_options(Greeter PUBLIC -Wall -Wpedantic -Wextra -Werror) elseif(MSVC) target_compile_options(Greeter PUBLIC /W4 /WX) - target_compile_definitions(GreeterTests PUBLIC DOCTEST_CONFIG_USE_STD_HEADERS) + target_compile_definitions(${PROJECT_NAME} PUBLIC DOCTEST_CONFIG_USE_STD_HEADERS) endif() endif() @@ -46,10 +46,11 @@ endif() enable_testing() # Note: doctest and similar testing frameworks can automatically configure CMake tests. For other -# testing frameworks add the tests target instead: add_test(NAME greeterTests COMMAND GreeterTests) +# testing frameworks add the tests target instead: add_test(NAME ${PROJECT_NAME} COMMAND +# ${PROJECT_NAME}) include(${doctest_SOURCE_DIR}/scripts/cmake/doctest.cmake) -doctest_discover_tests(GreeterTests) +doctest_discover_tests(${PROJECT_NAME}) # ---- code coverage ----