Commit 774bb5d05ff7eea427f4882b151649dd6239829e

Authored by Henry Fredrick Schreiner
1 parent d465d15d

Cleaner IDE folder structure

CMakeLists.txt
@@ -21,10 +21,12 @@ else() @@ -21,10 +21,12 @@ else()
21 set(CUR_PROJ OFF) 21 set(CUR_PROJ OFF)
22 endif() 22 endif()
23 23
  24 +# Allow IDE's to group targets into folders
  25 +set_property(GLOBAL PROPERTY USE_FOLDERS ON)
24 26
25 if(CMAKE_VERSION VERSION_GREATER 3.6) 27 if(CMAKE_VERSION VERSION_GREATER 3.6)
26 # Add clang-tidy if available 28 # Add clang-tidy if available
27 - option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy (resets to OFF)" OFF) 29 + option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF)
28 find_program( 30 find_program(
29 CLANG_TIDY_EXE 31 CLANG_TIDY_EXE
30 NAMES "clang-tidy" 32 NAMES "clang-tidy"
@@ -61,6 +63,8 @@ if(CLI_SINGLE_FILE) @@ -61,6 +63,8 @@ if(CLI_SINGLE_FILE)
61 ) 63 )
62 add_custom_target(generate_cli_single_file ALL 64 add_custom_target(generate_cli_single_file ALL
63 DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp") 65 DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp")
  66 + set_target_properties(generate_cli_single_file
  67 + PROPERTIES FOLDER "Scripts")
64 68
65 add_library(CLI11_SINGLE INTERFACE) 69 add_library(CLI11_SINGLE INTERFACE)
66 target_link_libraries(CLI11_SINGLE INTERFACE CLI11) 70 target_link_libraries(CLI11_SINGLE INTERFACE CLI11)
@@ -82,4 +86,3 @@ if(CLI_EXAMPLES) @@ -82,4 +86,3 @@ if(CLI_EXAMPLES)
82 add_subdirectory(examples) 86 add_subdirectory(examples)
83 endif() 87 endif()
84 88
85 -set(CLANG_TIDY_FIX OFF CACHE BOOL "Perform fixes for Clang-Tidy (resets to OFF)" FORCE)  
cmake/AddGoogletest.cmake
@@ -17,15 +17,6 @@ download_project(PROJ googletest @@ -17,15 +17,6 @@ download_project(PROJ googletest
17 set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) 17 set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
18 add_subdirectory(${googletest_SOURCE_DIR} ${googletest_SOURCE_DIR}) 18 add_subdirectory(${googletest_SOURCE_DIR} ${googletest_SOURCE_DIR})
19 19
20 -#mark_as_advanced(  
21 -# gtest_build_samples  
22 -# gtest_build_tests  
23 -# gtest_disable_pthreads  
24 -# gtest_force_shared_crt  
25 -# gtest_hide_internal_symbols  
26 -# BUILD_SHARED_LIBS  
27 -#)  
28 -  
29 if (CMAKE_CONFIGURATION_TYPES) 20 if (CMAKE_CONFIGURATION_TYPES)
30 add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} 21 add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}
31 --force-new-ctest-process --output-on-failure 22 --force-new-ctest-process --output-on-failure
@@ -34,6 +25,7 @@ else() @@ -34,6 +25,7 @@ else()
34 add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} 25 add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND}
35 --force-new-ctest-process --output-on-failure) 26 --force-new-ctest-process --output-on-failure)
36 endif() 27 endif()
  28 +set_target_properties(check PROPERTIES FOLDER "Scripts")
37 29
38 #include_directories(${gtest_SOURCE_DIR}/include) 30 #include_directories(${gtest_SOURCE_DIR}/include)
39 31
@@ -44,6 +36,7 @@ endif() @@ -44,6 +36,7 @@ endif()
44 macro(add_gtest TESTNAME) 36 macro(add_gtest TESTNAME)
45 target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main) 37 target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main)
46 add_test(${TESTNAME} ${TESTNAME}) 38 add_test(${TESTNAME} ${TESTNAME})
  39 + set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests")
47 endmacro() 40 endmacro()
48 41
49 mark_as_advanced( 42 mark_as_advanced(
@@ -55,3 +48,5 @@ gtest_force_shared_crt @@ -55,3 +48,5 @@ gtest_force_shared_crt
55 gtest_hide_internal_symbols 48 gtest_hide_internal_symbols
56 ) 49 )
57 50
  51 +set_target_properties(gtest gtest_main gmock gmock_main
  52 + PROPERTIES FOLDER "Extern")
examples/CMakeLists.txt
1 function(add_cli_exe T) 1 function(add_cli_exe T)
2 add_executable(${T} ${ARGN} ${CLI_headers}) 2 add_executable(${T} ${ARGN} ${CLI_headers})
3 target_link_libraries(${T} PUBLIC CLI11) 3 target_link_libraries(${T} PUBLIC CLI11)
  4 + set_target_properties(
  5 + ${T} PROPERTIES
  6 + FOLDER "Examples"
  7 + )
4 8
5 if(CLANG_TIDY_EXE) 9 if(CLANG_TIDY_EXE)
6 set_target_properties( 10 set_target_properties(
7 - ${T} PROPERTIES  
8 - CXX_CLANG_TIDY "${DO_CLANG_TIDY}" 11 + ${T} PROPERTIES
  12 + CXX_CLANG_TIDY "${DO_CLANG_TIDY}"
9 ) 13 )
10 endif() 14 endif()
11 endfunction() 15 endfunction()
tests/CMakeLists.txt
@@ -11,7 +11,7 @@ set(CLI_TESTS @@ -11,7 +11,7 @@ set(CLI_TESTS
11 NewParseTest 11 NewParseTest
12 ) 12 )
13 13
14 -set(CLI_SINGLE_TESTS 14 +set(CLI_MULTIONLY_TESTS
15 TimerTest 15 TimerTest
16 ) 16 )
17 17
@@ -28,11 +28,14 @@ foreach(T ${CLI_TESTS}) @@ -28,11 +28,14 @@ foreach(T ${CLI_TESTS})
28 add_executable(${T}_Single ${T}.cpp) 28 add_executable(${T}_Single ${T}.cpp)
29 target_link_libraries(${T}_Single PUBLIC CLI11_SINGLE) 29 target_link_libraries(${T}_Single PUBLIC CLI11_SINGLE)
30 add_gtest(${T}_Single) 30 add_gtest(${T}_Single)
  31 + set_target_properties(${T}_Single
  32 + PROPERTIES
  33 + FOLDER "Tests Single File")
31 endif() 34 endif()
32 35
33 endforeach() 36 endforeach()
34 37
35 -foreach(T ${CLI_SINGLE_TESTS}) 38 +foreach(T ${CLI_MULTIONLY_TESTS})
36 39
37 add_executable(${T} ${T}.cpp ${CLI_headers}) 40 add_executable(${T} ${T}.cpp ${CLI_headers})
38 target_link_libraries(${T} PUBLIC CLI11) 41 target_link_libraries(${T} PUBLIC CLI11)
@@ -44,6 +47,7 @@ endforeach() @@ -44,6 +47,7 @@ endforeach()
44 # Link test (build error if inlines missing) 47 # Link test (build error if inlines missing)
45 add_library(link_test_1 link_test_1.cpp) 48 add_library(link_test_1 link_test_1.cpp)
46 target_link_libraries(link_test_1 PUBLIC CLI11) 49 target_link_libraries(link_test_1 PUBLIC CLI11)
  50 +set_target_properties(link_test_1 PROPERTIES FOLDER "Tests")
47 add_executable(link_test_2 link_test_2.cpp) 51 add_executable(link_test_2 link_test_2.cpp)
48 target_link_libraries(link_test_2 PUBLIC CLI11 link_test_1) 52 target_link_libraries(link_test_2 PUBLIC CLI11 link_test_1)
49 add_gtest(link_test_2) 53 add_gtest(link_test_2)