From 774bb5d05ff7eea427f4882b151649dd6239829e Mon Sep 17 00:00:00 2001 From: Henry Fredrick Schreiner Date: Fri, 2 Jun 2017 09:03:38 -0400 Subject: [PATCH] Cleaner IDE folder structure --- CMakeLists.txt | 7 +++++-- cmake/AddGoogletest.cmake | 13 ++++--------- examples/CMakeLists.txt | 8 ++++++-- tests/CMakeLists.txt | 8 ++++++-- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d8e980e..a5666a7e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,10 +21,12 @@ else() set(CUR_PROJ OFF) endif() +# Allow IDE's to group targets into folders +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 (resets to OFF)" OFF) + option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF) find_program( CLANG_TIDY_EXE NAMES "clang-tidy" @@ -61,6 +63,8 @@ if(CLI_SINGLE_FILE) ) add_custom_target(generate_cli_single_file ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/include/CLI11.hpp") + set_target_properties(generate_cli_single_file + PROPERTIES FOLDER "Scripts") add_library(CLI11_SINGLE INTERFACE) target_link_libraries(CLI11_SINGLE INTERFACE CLI11) @@ -82,4 +86,3 @@ if(CLI_EXAMPLES) add_subdirectory(examples) endif() -set(CLANG_TIDY_FIX OFF CACHE BOOL "Perform fixes for Clang-Tidy (resets to OFF)" FORCE) diff --git a/cmake/AddGoogletest.cmake b/cmake/AddGoogletest.cmake index b1f4c18b..e18ce48a 100644 --- a/cmake/AddGoogletest.cmake +++ b/cmake/AddGoogletest.cmake @@ -17,15 +17,6 @@ download_project(PROJ googletest set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) add_subdirectory(${googletest_SOURCE_DIR} ${googletest_SOURCE_DIR}) -#mark_as_advanced( -# gtest_build_samples -# gtest_build_tests -# gtest_disable_pthreads -# gtest_force_shared_crt -# gtest_hide_internal_symbols -# BUILD_SHARED_LIBS -#) - if (CMAKE_CONFIGURATION_TYPES) add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --force-new-ctest-process --output-on-failure @@ -34,6 +25,7 @@ else() add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --force-new-ctest-process --output-on-failure) endif() +set_target_properties(check PROPERTIES FOLDER "Scripts") #include_directories(${gtest_SOURCE_DIR}/include) @@ -44,6 +36,7 @@ endif() macro(add_gtest TESTNAME) target_link_libraries(${TESTNAME} PUBLIC gtest gmock gtest_main) add_test(${TESTNAME} ${TESTNAME}) + set_target_properties(${TESTNAME} PROPERTIES FOLDER "Tests") endmacro() mark_as_advanced( @@ -55,3 +48,5 @@ gtest_force_shared_crt gtest_hide_internal_symbols ) +set_target_properties(gtest gtest_main gmock gmock_main + PROPERTIES FOLDER "Extern") diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 6fae4456..d08459ad 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1,11 +1,15 @@ function(add_cli_exe T) add_executable(${T} ${ARGN} ${CLI_headers}) target_link_libraries(${T} PUBLIC CLI11) + set_target_properties( + ${T} PROPERTIES + FOLDER "Examples" + ) if(CLANG_TIDY_EXE) set_target_properties( - ${T} PROPERTIES - CXX_CLANG_TIDY "${DO_CLANG_TIDY}" + ${T} PROPERTIES + CXX_CLANG_TIDY "${DO_CLANG_TIDY}" ) endif() endfunction() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index e62e74f6..238a099c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -11,7 +11,7 @@ set(CLI_TESTS NewParseTest ) -set(CLI_SINGLE_TESTS +set(CLI_MULTIONLY_TESTS TimerTest ) @@ -28,11 +28,14 @@ foreach(T ${CLI_TESTS}) add_executable(${T}_Single ${T}.cpp) target_link_libraries(${T}_Single PUBLIC CLI11_SINGLE) add_gtest(${T}_Single) + set_target_properties(${T}_Single + PROPERTIES + FOLDER "Tests Single File") endif() endforeach() -foreach(T ${CLI_SINGLE_TESTS}) +foreach(T ${CLI_MULTIONLY_TESTS}) add_executable(${T} ${T}.cpp ${CLI_headers}) target_link_libraries(${T} PUBLIC CLI11) @@ -44,6 +47,7 @@ endforeach() # Link test (build error if inlines missing) add_library(link_test_1 link_test_1.cpp) target_link_libraries(link_test_1 PUBLIC CLI11) +set_target_properties(link_test_1 PROPERTIES FOLDER "Tests") add_executable(link_test_2 link_test_2.cpp) target_link_libraries(link_test_2 PUBLIC CLI11 link_test_1) add_gtest(link_test_2)