From 950be29020f2e52e51bc725e8acd56a80a28d4ba Mon Sep 17 00:00:00 2001 From: Petter Strandmark Date: Sat, 5 May 2018 21:14:40 +0200 Subject: Set the FOLDER property for Abseil targets. https://cmake.org/cmake/help/v3.0/prop_tgt/FOLDER.html This only affects IDEs and will further only take effect if set_property(GLOBAL PROPERTY USE_FOLDERS ON) is set in the main CMakeLists.txt of the project. I found using this quite helpful when adding Abseil to larger CMake projects. --- CMake/AbseilHelpers.cmake | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake index 7b6f0879..706a235a 100644 --- a/CMake/AbseilHelpers.cmake +++ b/CMake/AbseilHelpers.cmake @@ -49,6 +49,8 @@ function(absl_library) PUBLIC ${ABSL_COMMON_INCLUDE_DIRS} ${ABSL_LIB_PUBLIC_INCLUDE_DIRS} PRIVATE ${ABSL_LIB_PRIVATE_INCLUDE_DIRS} ) + # Add all Abseil targets to a a folder in the IDE for organization. + set_property(TARGET ${_NAME} PROPERTY FOLDER Abseil) if(ABSL_LIB_EXPORT_NAME) add_library(absl::${ABSL_LIB_EXPORT_NAME} ALIAS ${_NAME}) @@ -92,6 +94,8 @@ function(absl_header_library) PUBLIC ${ABSL_COMMON_INCLUDE_DIRS} ${ABSL_HO_LIB_PUBLIC_INCLUDE_DIRS} PRIVATE ${ABSL_HO_LIB_PRIVATE_INCLUDE_DIRS} ) + # Add all Abseil targets to a a folder in the IDE for organization. + set_property(TARGET ${_NAME} PROPERTY FOLDER Abseil) if(ABSL_HO_LIB_EXPORT_NAME) add_library(absl::${ABSL_HO_LIB_EXPORT_NAME} ALIAS ${_NAME}) @@ -138,6 +142,8 @@ function(absl_test) PUBLIC ${ABSL_COMMON_INCLUDE_DIRS} ${ABSL_TEST_PUBLIC_INCLUDE_DIRS} PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS} ) + # Add all Abseil targets to a a folder in the IDE for organization. + set_property(TARGET ${_NAME}_bin PROPERTY FOLDER Abseil) add_test(${_NAME} ${_NAME}_bin) endif(BUILD_TESTING) -- cgit v1.2.3 From e0bb9b567924371be33fb162e56ece922530fbe6 Mon Sep 17 00:00:00 2001 From: Petter Strandmark Date: Wed, 9 May 2018 20:34:58 +0200 Subject: Use a variable ABSL_IDE_FOLDER in three places. --- CMake/AbseilHelpers.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/CMake/AbseilHelpers.cmake b/CMake/AbseilHelpers.cmake index 706a235a..c2a653c8 100644 --- a/CMake/AbseilHelpers.cmake +++ b/CMake/AbseilHelpers.cmake @@ -16,6 +16,11 @@ include(CMakeParseArguments) +# The IDE folder for Abseil that will be used if Abseil is included in a CMake +# project that sets +# set_property(GLOBAL PROPERTY USE_FOLDERS ON) +# For example, Visual Studio supports folders. +set(ABSL_IDE_FOLDER Abseil) # # create a library in the absl namespace @@ -50,7 +55,7 @@ function(absl_library) PRIVATE ${ABSL_LIB_PRIVATE_INCLUDE_DIRS} ) # Add all Abseil targets to a a folder in the IDE for organization. - set_property(TARGET ${_NAME} PROPERTY FOLDER Abseil) + set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}) if(ABSL_LIB_EXPORT_NAME) add_library(absl::${ABSL_LIB_EXPORT_NAME} ALIAS ${_NAME}) @@ -95,7 +100,7 @@ function(absl_header_library) PRIVATE ${ABSL_HO_LIB_PRIVATE_INCLUDE_DIRS} ) # Add all Abseil targets to a a folder in the IDE for organization. - set_property(TARGET ${_NAME} PROPERTY FOLDER Abseil) + set_property(TARGET ${_NAME} PROPERTY FOLDER ${ABSL_IDE_FOLDER}) if(ABSL_HO_LIB_EXPORT_NAME) add_library(absl::${ABSL_HO_LIB_EXPORT_NAME} ALIAS ${_NAME}) @@ -143,7 +148,7 @@ function(absl_test) PRIVATE ${GMOCK_INCLUDE_DIRS} ${GTEST_INCLUDE_DIRS} ) # Add all Abseil targets to a a folder in the IDE for organization. - set_property(TARGET ${_NAME}_bin PROPERTY FOLDER Abseil) + set_property(TARGET ${_NAME}_bin PROPERTY FOLDER ${ABSL_IDE_FOLDER}) add_test(${_NAME} ${_NAME}_bin) endif(BUILD_TESTING) -- cgit v1.2.3