1
0
Fork 0
mirror of https://github.com/TheLartians/ModernCppStarter.git synced 2025-08-30 21:51:12 +02:00

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 <dominic.dinser@leica-geosystems.com>
Co-authored-by: Lars Melchior <TheLartians@users.noreply.github.com>
This commit is contained in:
Dominic 2021-10-17 21:10:52 +02:00 committed by GitHub
parent 69320a663b
commit e0bf3f59d1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 16 deletions

View file

@ -43,19 +43,19 @@ file(GLOB_RECURSE sources CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/source/
# ---- Create library ---- # ---- Create library ----
# Note: for header-only libraries change all PUBLIC flags to INTERFACE and create an interface # Note: for header-only libraries change all PUBLIC flags to INTERFACE and create an interface
# target: add_library(Greeter INTERFACE) # target: add_library(${PROJECT_NAME} INTERFACE)
add_library(Greeter ${headers} ${sources}) 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 # being a cross-platform target, we enforce standards conformance on MSVC
target_compile_options(Greeter PUBLIC "$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/permissive->") target_compile_options(${PROJECT_NAME} PUBLIC "$<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/permissive->")
# Link dependencies # Link dependencies
target_link_libraries(Greeter PRIVATE fmt::fmt) target_link_libraries(${PROJECT_NAME} PRIVATE fmt::fmt)
target_include_directories( target_include_directories(
Greeter PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include> ${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include/${PROJECT_NAME}-${PROJECT_VERSION}> $<INSTALL_INTERFACE:include/${PROJECT_NAME}-${PROJECT_VERSION}>
) )

View file

@ -22,8 +22,8 @@ CPMAddPackage(NAME Greeter SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/..)
file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp) 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)

View file

@ -27,9 +27,9 @@ endif()
# ---- Create binary ---- # ---- Create binary ----
file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp) file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp)
add_executable(GreeterTests ${sources}) add_executable(${PROJECT_NAME} ${sources})
target_link_libraries(GreeterTests doctest::doctest Greeter::Greeter) target_link_libraries(${PROJECT_NAME} doctest::doctest Greeter::Greeter)
set_target_properties(GreeterTests PROPERTIES CXX_STANDARD 17) set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 17)
# enable compiler warnings # enable compiler warnings
if(NOT TEST_INSTALLED_VERSION) if(NOT TEST_INSTALLED_VERSION)
@ -37,7 +37,7 @@ if(NOT TEST_INSTALLED_VERSION)
target_compile_options(Greeter PUBLIC -Wall -Wpedantic -Wextra -Werror) target_compile_options(Greeter PUBLIC -Wall -Wpedantic -Wextra -Werror)
elseif(MSVC) elseif(MSVC)
target_compile_options(Greeter PUBLIC /W4 /WX) 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()
endif() endif()
@ -46,10 +46,11 @@ endif()
enable_testing() enable_testing()
# Note: doctest and similar testing frameworks can automatically configure CMake tests. For other # 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) include(${doctest_SOURCE_DIR}/scripts/cmake/doctest.cmake)
doctest_discover_tests(GreeterTests) doctest_discover_tests(${PROJECT_NAME})
# ---- code coverage ---- # ---- code coverage ----