diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2018-02-02 18:03:38 -0800 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2018-02-02 18:03:38 -0800 |
commit | fc6e38c2fc4fb1f97ad17f45d1a165ef4211936c (patch) | |
tree | 70a0fa4a170ad1cbbe990cc05bde1443020fcde5 /cmake | |
parent | ed298c8eac390ddd9c24381e32359f813a996dce (diff) | |
download | libgit2-fc6e38c2fc4fb1f97ad17f45d1a165ef4211936c.tar.gz |
cmake: Move IDE source munging to a module
Move the odd code that provides a hierarchical display for projects
within the IDEs to its own module.
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Modules/IdeSplitSources.cmake | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cmake/Modules/IdeSplitSources.cmake b/cmake/Modules/IdeSplitSources.cmake new file mode 100644 index 000000000..e2e09b4ce --- /dev/null +++ b/cmake/Modules/IdeSplitSources.cmake @@ -0,0 +1,22 @@ +# This function splits the sources files up into their appropriate +# subdirectories. This is especially useful for IDEs like Xcode and +# Visual Studio, so that you can navigate into the libgit2_clar project, +# and see the folders within the tests folder (instead of just seeing all +# source and tests in a single folder.) +FUNCTION(IDE_SPLIT_SOURCES target) + IF(MSVC_IDE OR CMAKE_GENERATOR STREQUAL Xcode) + GET_TARGET_PROPERTY(sources ${target} SOURCES) + FOREACH(source ${sources}) + IF(source MATCHES ".*/") + STRING(REPLACE ${libgit2_SOURCE_DIR}/ "" rel ${source}) + IF(rel) + STRING(REGEX REPLACE "/([^/]*)$" "" rel ${rel}) + IF(rel) + STRING(REPLACE "/" "\\\\" rel ${rel}) + SOURCE_GROUP(${rel} FILES ${source}) + ENDIF() + ENDIF() + ENDIF() + ENDFOREACH() + ENDIF() +ENDFUNCTION() |