mirror of
				https://github.com/TheLartians/ModernCppStarter.git
				synced 2025-10-31 02:01:33 +01: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:
		
							parent
							
								
									69320a663b
								
							
						
					
					
						commit
						e0bf3f59d1
					
				
					 3 changed files with 17 additions and 16 deletions
				
			
		|  | @ -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}> | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -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) | ||||||
|  |  | ||||||
|  | @ -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 ---- | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue