diff options
author | Marc B <cmake.ichbinsauch@recursor.net> | 2018-03-27 22:53:18 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2018-03-29 17:19:13 (GMT) |
commit | df535ad846f5a25cd0795ce099a8604149bbf748 (patch) | |
tree | 400c5b96c50f643fae4bc4ccce96a39e48671c47 | |
parent | 6792c7787aedc0fb2a32b6ca563917f7447f2e80 (diff) | |
download | CMake-df535ad846f5a25cd0795ce099a8604149bbf748.zip CMake-df535ad846f5a25cd0795ce099a8604149bbf748.tar.gz CMake-df535ad846f5a25cd0795ce099a8604149bbf748.tar.bz2 |
Add CMAKE_FOLDER variable to initialize FOLDER target property
This can be used for example to organize all following targets into one
Visual Studio folder:
set(CMAKE_FOLDER Libraries)
add_subdirectory(libA)
add_subdirectory(libB)
set(CMAKE_FOLDER Executables)
add_subdirectory(progA)
Another possibility is using the current directory name for all
following targets in subdirectories:
get_filename_component(dirname "${CMAKE_CURRENT_SOURCE_DIR}" NAME)
string(APPEND CMAKE_FOLDER "/${dirname}")
-rw-r--r-- | Help/manual/cmake-variables.7.rst | 1 | ||||
-rw-r--r-- | Help/prop_tgt/FOLDER.rst | 3 | ||||
-rw-r--r-- | Help/release/dev/variable-CMAKE_FOLDER.rst | 5 | ||||
-rw-r--r-- | Help/variable/CMAKE_FOLDER.rst | 7 | ||||
-rw-r--r-- | Source/cmTarget.cxx | 1 |
5 files changed, 17 insertions, 0 deletions
diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst index 0cb90d4..652dab8 100644 --- a/Help/manual/cmake-variables.7.rst +++ b/Help/manual/cmake-variables.7.rst @@ -305,6 +305,7 @@ Variables that Control the Build /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG /variable/CMAKE_EXE_LINKER_FLAGS_CONFIG_INIT /variable/CMAKE_EXE_LINKER_FLAGS_INIT + /variable/CMAKE_FOLDER /variable/CMAKE_Fortran_FORMAT /variable/CMAKE_Fortran_MODULE_DIRECTORY /variable/CMAKE_GNUtoMS diff --git a/Help/prop_tgt/FOLDER.rst b/Help/prop_tgt/FOLDER.rst index bfe4e8e..0121125 100644 --- a/Help/prop_tgt/FOLDER.rst +++ b/Help/prop_tgt/FOLDER.rst @@ -8,3 +8,6 @@ IDEs like Visual Studio. Targets with the same FOLDER property value will appear next to each other in a folder of that name. To nest folders, use FOLDER values such as 'GUI/Dialogs' with '/' characters separating folder levels. + +This property is initialized by the value of the variable +:variable:`CMAKE_FOLDER` if it is set when a target is created. diff --git a/Help/release/dev/variable-CMAKE_FOLDER.rst b/Help/release/dev/variable-CMAKE_FOLDER.rst new file mode 100644 index 0000000..8064edd --- /dev/null +++ b/Help/release/dev/variable-CMAKE_FOLDER.rst @@ -0,0 +1,5 @@ +variable-CMAKE_FOLDER +--------------------- + +* The :variable:`CMAKE_FOLDER` variable was added to initialize the + :prop_tgt:`FOLDER` property on all targets. diff --git a/Help/variable/CMAKE_FOLDER.rst b/Help/variable/CMAKE_FOLDER.rst new file mode 100644 index 0000000..50a2b88 --- /dev/null +++ b/Help/variable/CMAKE_FOLDER.rst @@ -0,0 +1,7 @@ +CMAKE_FOLDER +------------ + +Set the folder name. Use to organize targets in an IDE. + +This variable is used to initialize the :prop_tgt:`FOLDER` property on all the +targets. See that target property for additional information. diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 6137223..b88d517f 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -275,6 +275,7 @@ cmTarget::cmTarget(std::string const& name, cmStateEnums::TargetType type, this->SetPropertyDefault("CUDA_SEPARABLE_COMPILATION", nullptr); this->SetPropertyDefault("LINK_SEARCH_START_STATIC", nullptr); this->SetPropertyDefault("LINK_SEARCH_END_STATIC", nullptr); + this->SetPropertyDefault("FOLDER", nullptr); } // Collect the set of configuration types. |