Geode-5638: Reorganize the projects (#364)

Move cli related projects under a cli folder and all cpp related projects under a cpp folder.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ecb55c3..cd4e511 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -310,21 +310,32 @@
 find_package(Geode 1.0 REQUIRED)
 
 add_custom_target(client-libraries)
+set_target_properties(client-libraries PROPERTIES
+	FOLDER test-common
+)
 
 add_custom_target(unit-tests)
+set_target_properties(unit-tests PROPERTIES
+	FOLDER cpp/test/unit
+)
+
 add_custom_target(run-unit-tests)
 add_dependencies(run-unit-tests unit-tests)
 set_target_properties(run-unit-tests PROPERTIES
     EXCLUDE_FROM_ALL TRUE
     EXCLUDE_FROM_DEFAULT_BUILD TRUE
+	FOLDER cpp/test/unit
 )
 
 add_custom_target(integration-tests)
+set_target_properties(integration-tests PROPERTIES FOLDER cpp/test/integration)
+
 add_custom_target(run-integration-tests)
 add_dependencies(run-integration-tests integration-tests)
 set_target_properties(run-integration-tests PROPERTIES
     EXCLUDE_FROM_ALL TRUE
     EXCLUDE_FROM_DEFAULT_BUILD TRUE
+	FOLDER test-common
 )
 
 add_subdirectory(dependencies)
diff --git a/clicache/integration-test/CMakeLists.txt b/clicache/integration-test/CMakeLists.txt
index 7d75b1d..a278c97 100644
--- a/clicache/integration-test/CMakeLists.txt
+++ b/clicache/integration-test/CMakeLists.txt
@@ -43,7 +43,7 @@
   include_external_msproject(
       ${PROJNAME}  ${CMAKE_CURRENT_BINARY_DIR}/${PROJNAME}.csproj
       TYPE FAE04EC0-301F-11D3-BF4B-00C04F79EFBC)
-  set_target_properties(${PROJNAME} PROPERTIES FOLDER test/cliTests)
+  set_target_properties(${PROJNAME} PROPERTIES FOLDER cli/test/integration)
 
 endforeach()
 
@@ -114,5 +114,8 @@
   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
   USES_TERMINAL)
 add_dependencies(run-integration-tests run-stable-clicache-integration-tests)
-set_target_properties(run-stable-clicache-integration-tests PROPERTIES EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_DEFAULT_BUILD TRUE)
+set_target_properties(run-stable-clicache-integration-tests PROPERTIES
+  EXCLUDE_FROM_ALL TRUE
+  EXCLUDE_FROM_DEFAULT_BUILD TRUE
+  FOLDER cli/test/integration)
 
diff --git a/clicache/integration-test2/CMakeLists.txt b/clicache/integration-test2/CMakeLists.txt
index 745a1da..1d88366 100644
--- a/clicache/integration-test2/CMakeLists.txt
+++ b/clicache/integration-test2/CMakeLists.txt
@@ -73,6 +73,7 @@
   VS_DOTNET_REFERENCE_xunit.abstractions "${CMAKE_BINARY_DIR}/clicache/packages/xunit.abstractions.2.0.2/lib/net35/xunit.abstractions.dll"
   VS_DOTNET_REFERENCE_xunit.execution.desktop "${CMAKE_BINARY_DIR}/clicache/packages/xunit.extensibility.execution.2.4.0/lib/net452/xunit.execution.desktop.dll"
   VS_DOTNET_REFERENCE_xunit.runner.visualstudio.testadapter "${CMAKE_BINARY_DIR}/clicache/packages/xunit.runner.visualstudio.2.4.0/build/_common/xunit.runner.visualstudio.testadapter.dll"
+  FOLDER cli/test/integration
 )
 
 if(NOT "${STRONG_NAME_KEY}" STREQUAL "")
diff --git a/clicache/src/CMakeLists.txt b/clicache/src/CMakeLists.txt
index 6b73f89..7e975b8 100644
--- a/clicache/src/CMakeLists.txt
+++ b/clicache/src/CMakeLists.txt
@@ -311,6 +311,7 @@
   VS_GLOBAL_ROOTNAMESPACE ${PROJECT_NAME}
   VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2"
   VS_DOTNET_REFERENCES "System;System.Xml;System.Core"
+  FOLDER cli
 )
 
 target_compile_options(${PROJECT_NAME}
diff --git a/clicache/test/CMakeLists.txt b/clicache/test/CMakeLists.txt
index cd73517..6570f7f 100644
--- a/clicache/test/CMakeLists.txt
+++ b/clicache/test/CMakeLists.txt
@@ -41,6 +41,7 @@
   VS_GLOBAL_ROOTNAMESPACE Apache.Geode.Test
   VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2"
   VS_DOTNET_REFERENCES "System;System.Xml;Microsoft.VisualStudio.QualityTools.UnitTestFramework"
+  FOLDER cli/test/unit
 )
 
 target_include_directories(Apache.Geode.Test
diff --git a/clicache/test2/CMakeLists.txt b/clicache/test2/CMakeLists.txt
index 749e7e1..f237592 100644
--- a/clicache/test2/CMakeLists.txt
+++ b/clicache/test2/CMakeLists.txt
@@ -51,6 +51,7 @@
   VS_DOTNET_REFERENCE_xunit.abstractions "${CMAKE_BINARY_DIR}/clicache/packages/xunit.abstractions.2.0.2/lib/net35/xunit.abstractions.dll"
   VS_DOTNET_REFERENCE_xunit.execution.desktop "${CMAKE_BINARY_DIR}/clicache/packages/xunit.extensibility.execution.2.4.0/lib/net452/xunit.execution.desktop.dll"
   VS_DOTNET_REFERENCE_xunit.runner.visualstudio.testadapter "${CMAKE_BINARY_DIR}/clicache/packages/xunit.runner.visualstudio.2.4.0/build/_common/xunit.runner.visualstudio.testadapter.dll"
+  FOLDER cli/test/unit
 )
 
 if(NOT "${STRONG_NAME_KEY}" STREQUAL "")
diff --git a/cppcache/CMakeLists.txt b/cppcache/CMakeLists.txt
index d3da5c1..5182494 100644
--- a/cppcache/CMakeLists.txt
+++ b/cppcache/CMakeLists.txt
@@ -37,6 +37,9 @@
 
 # adds named target for version.h to avoid parallel generation under windows
 add_custom_target(version-header DEPENDS version.h)
+set_target_properties(version-header PROPERTIES
+	FOLDER cpp
+)
 
 if ("SunOS" STREQUAL ${CMAKE_SYSTEM_NAME})
   set( _SOLARIS 1 )
diff --git a/cppcache/integration-test-2/CMakeLists.txt b/cppcache/integration-test-2/CMakeLists.txt
index 9916ff7..09d4741 100644
--- a/cppcache/integration-test-2/CMakeLists.txt
+++ b/cppcache/integration-test-2/CMakeLists.txt
@@ -75,6 +75,8 @@
   endforeach()
 endif()
 
+set_target_properties(integration-test-2 PROPERTIES
+	FOLDER cpp/test/integration)
 enable_testing()
 include(GoogleTest)
 gtest_discover_tests(integration-test-2)
\ No newline at end of file
diff --git a/cppcache/integration-test/CMakeLists.txt b/cppcache/integration-test/CMakeLists.txt
index 28dd53f..53363e8 100644
--- a/cppcache/integration-test/CMakeLists.txt
+++ b/cppcache/integration-test/CMakeLists.txt
@@ -30,6 +30,11 @@
     apache-geode
     fwk
 )
+
+set_target_properties(${TEST_UTILS_LIB} PROPERTIES
+	FOLDER cpp/test/integration
+)
+
 target_compile_definitions(${TEST_UTILS_LIB}
   PRIVATE
     $<MAKE_C_IDENTIFIER:${TEST_UTILS_LIB}>_static=1
@@ -52,6 +57,9 @@
     $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src
 )
 
+ set_target_properties(unit_test_callbacks PROPERTIES FOLDER cpp/test/integration)
+
+
 enable_testing()
 
 # Function to resolve both config and generate stage variables.
@@ -79,7 +87,7 @@
   set(TESTS ${TESTS} ${TEST})
   add_dependencies(integration-tests ${TEST})
   add_executable(${TEST} ${FILE})
-  set_target_properties(${TEST} PROPERTIES FOLDER test/cppTests)
+  set_target_properties(${TEST} PROPERTIES FOLDER cpp/test/integration)
 
   target_link_libraries(${TEST}
     PRIVATE
@@ -236,6 +244,7 @@
 set_target_properties(run-stable-cppcache-integration-tests PROPERTIES
     EXCLUDE_FROM_ALL TRUE
     EXCLUDE_FROM_DEFAULT_BUILD TRUE
+	FOLDER cpp/test/integration
 )
 
 add_custom_target(run-quick-cppcache-integration-tests
@@ -245,4 +254,5 @@
 set_target_properties(run-quick-cppcache-integration-tests PROPERTIES
     EXCLUDE_FROM_ALL TRUE
     EXCLUDE_FROM_DEFAULT_BUILD TRUE
+	FOLDER cpp/test/integration
 )
diff --git a/cppcache/shared/CMakeLists.txt b/cppcache/shared/CMakeLists.txt
index 0e052ae..015b24d 100644
--- a/cppcache/shared/CMakeLists.txt
+++ b/cppcache/shared/CMakeLists.txt
@@ -46,7 +46,9 @@
   PUBLIC_HEADER "${PUBLIC_HEADERS}"
   OUTPUT_NAME ${PRODUCT_LIB_NAME}
   CXX_VISIBILITY_PRESET hidden
-  VISIBILITY_INLINES_HIDDEN ON)
+  VISIBILITY_INLINES_HIDDEN ON
+  FOLDER cpp
+  )
 
 if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
   set_target_properties(apache-geode PROPERTIES
diff --git a/cppcache/static/CMakeLists.txt b/cppcache/static/CMakeLists.txt
index 5a9389c..373cffd 100644
--- a/cppcache/static/CMakeLists.txt
+++ b/cppcache/static/CMakeLists.txt
@@ -50,6 +50,7 @@
   endif()
 
   set_target_properties(apache-geode-static PROPERTIES
+    FOLDER cpp
     COTIRE_ENABLE_PRECOMPILED_HEADER TRUE
     COTIRE_ADD_UNITY_BUILD TRUE
     COTIRE_PREFIX_HEADER_IGNORE_PATH "${_COTIRE_PREFIX_HEADER_IGNORE_PATH}"
@@ -58,4 +59,7 @@
   set_source_files_properties(cppcache/version.h PROPERTIES GENERATED TRUE)
 
   cotire(apache-geode-static)
+else()
+  set_target_properties(apache-geode-static PROPERTIES
+    FOLDER cpp)
 endif()
diff --git a/cppcache/test/CMakeLists.txt b/cppcache/test/CMakeLists.txt
index dc5349b..594d6e0 100644
--- a/cppcache/test/CMakeLists.txt
+++ b/cppcache/test/CMakeLists.txt
@@ -70,6 +70,10 @@
 
 add_dependencies(unit-tests apache-geode_unittests)
 
+set_target_properties(apache-geode_unittests PROPERTIES
+  FOLDER cpp/test/unit
+  )
+
 enable_testing()
 add_test(NAME ${PROJECT_NAME} COMMAND $<TARGET_FILE:${PROJECT_NAME}>)
 
@@ -80,6 +84,7 @@
   USES_TERMINAL
 )
 set_target_properties(run-cppcache-unit-tests PROPERTIES
+  FOLDER cpp/test/unit
   EXCLUDE_FROM_ALL TRUE
   EXCLUDE_FROM_DEFAULT_BUILD TRUE
 )
diff --git a/cryptoimpl/CMakeLists.txt b/cryptoimpl/CMakeLists.txt
index fc3d820..c7028b2 100644
--- a/cryptoimpl/CMakeLists.txt
+++ b/cryptoimpl/CMakeLists.txt
@@ -33,7 +33,8 @@
 
 set_target_properties(cryptoImpl PROPERTIES
   CXX_VISIBILITY_PRESET hidden
-  VISIBILITY_INLINES_HIDDEN ON)
+  VISIBILITY_INLINES_HIDDEN ON
+  FOLDER cpp/test/integration)
 
 target_link_libraries(cryptoImpl
   PRIVATE
diff --git a/dhimpl/CMakeLists.txt b/dhimpl/CMakeLists.txt
index cf0ca70..0ce8239 100644
--- a/dhimpl/CMakeLists.txt
+++ b/dhimpl/CMakeLists.txt
@@ -20,6 +20,9 @@
 
 add_library(DHImpl SHARED ${SOURCES})
 
+set_target_properties(DHImpl PROPERTIES
+  FOLDER cpp/test/integration)
+
 include(GenerateExportHeader)
 generate_export_header(DHImpl)
 
diff --git a/docs/api/clicache/CMakeLists.txt b/docs/api/clicache/CMakeLists.txt
index 9e6ddbe..618c50d 100644
--- a/docs/api/clicache/CMakeLists.txt
+++ b/docs/api/clicache/CMakeLists.txt
@@ -22,7 +22,10 @@
       ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
       WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
       COMMENT "Generating .NET API documentation with Doxygen" VERBATIM)
-  set_target_properties(docs-clicache PROPERTIES EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_DEFAULT_BUILD TRUE)
+  set_target_properties(docs-clicache PROPERTIES
+    EXCLUDE_FROM_ALL TRUE
+	EXCLUDE_FROM_DEFAULT_BUILD TRUE
+	FOLDER cli/docs)
   add_dependencies(docs docs-clicache)
 
   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ DESTINATION docs/DotNetDocs)
diff --git a/docs/api/cppcache/CMakeLists.txt b/docs/api/cppcache/CMakeLists.txt
index 4b61051..d8146e8 100644
--- a/docs/api/cppcache/CMakeLists.txt
+++ b/docs/api/cppcache/CMakeLists.txt
@@ -22,7 +22,10 @@
       ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
       WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
       COMMENT "Generating C++ API documentation with Doxygen" VERBATIM)
-  set_target_properties(docs-cppcache PROPERTIES EXCLUDE_FROM_ALL TRUE EXCLUDE_FROM_DEFAULT_BUILD TRUE)
+  set_target_properties(docs-cppcache PROPERTIES
+    EXCLUDE_FROM_ALL TRUE
+	EXCLUDE_FROM_DEFAULT_BUILD TRUE
+	FOLDER cpp/docs)
   add_dependencies(docs docs-cppcache)
   
   install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html/ DESTINATION docs/cppdocs)
diff --git a/sqliteimpl/CMakeLists.txt b/sqliteimpl/CMakeLists.txt
index 4298e4b..c3e6c2d 100644
--- a/sqliteimpl/CMakeLists.txt
+++ b/sqliteimpl/CMakeLists.txt
@@ -23,6 +23,10 @@
   SqLiteImpl.hpp
 )
 
+set_target_properties(SqLiteImpl PROPERTIES
+	FOLDER cpp/test/integration
+)
+
 include(GenerateExportHeader)
 generate_export_header(SqLiteImpl)
 
diff --git a/templates/security/CMakeLists.txt b/templates/security/CMakeLists.txt
index 8cf752c..1f91042 100644
--- a/templates/security/CMakeLists.txt
+++ b/templates/security/CMakeLists.txt
@@ -24,6 +24,10 @@
   CMakeLists.txt.forInstall
 )
 
+set_target_properties(securityImpl PROPERTIES
+	FOLDER cpp/test/integration
+)
+
 include(GenerateExportHeader)
 generate_export_header(securityImpl)
 
diff --git a/tests/cli/CMakeLists.txt b/tests/cli/CMakeLists.txt
index 8e97331..a9c538f 100644
--- a/tests/cli/CMakeLists.txt
+++ b/tests/cli/CMakeLists.txt
@@ -51,6 +51,6 @@
       ${PROJNAME}  ${CMAKE_CURRENT_BINARY_DIR}/${PROJNAME}/${PROJNAME}.csproj
       TYPE FAE04EC0-301F-11D3-BF4B-00C04F79EFBC
 	  PLATFORM ${PLATFORM})
-  set_target_properties(${PROJNAME} PROPERTIES FOLDER test/cliTests)
+  set_target_properties(${PROJNAME} PROPERTIES FOLDER cli/test/integration)
 
 endforeach()
diff --git a/tests/cli/PdxClassLibrary/CMakeLists.txt b/tests/cli/PdxClassLibrary/CMakeLists.txt
index 14acb9c..5602d0c 100644
--- a/tests/cli/PdxClassLibrary/CMakeLists.txt
+++ b/tests/cli/PdxClassLibrary/CMakeLists.txt
@@ -39,7 +39,7 @@
   VS_GLOBAL_PROJECT_TYPES "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
   VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.5.2"
   VS_DOTNET_REFERENCES "System;System.Xml;System.Data"
-  FOLDER test/cliTests
+  FOLDER cli/test/integration
 )
 
 if(NOT "${STRONG_NAME_KEY}" STREQUAL "")
diff --git a/tests/cli/PkcsWrapper/CMakeLists.txt b/tests/cli/PkcsWrapper/CMakeLists.txt
index ba1329a..36975d4 100644
--- a/tests/cli/PkcsWrapper/CMakeLists.txt
+++ b/tests/cli/PkcsWrapper/CMakeLists.txt
@@ -55,4 +55,4 @@
 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SHARED_LINKER_FLAGS_STRONG_KEY}")
 
 # For Visual Studio organization
-set_target_properties(PkcsWrapper PROPERTIES FOLDER test/cliTests)
+set_target_properties(PkcsWrapper PROPERTIES FOLDER cli/test/integration)
diff --git a/tests/cli/QueryHelper/CMakeLists.txt b/tests/cli/QueryHelper/CMakeLists.txt
index fb1c871..5b8d19c 100644
--- a/tests/cli/QueryHelper/CMakeLists.txt
+++ b/tests/cli/QueryHelper/CMakeLists.txt
@@ -59,4 +59,4 @@
 set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${SHARED_LINKER_FLAGS_STRONG_KEY}")
 
 # For Visual Studio organization
-set_target_properties(QueryWrapper PROPERTIES FOLDER test/cliTests)
+set_target_properties(QueryWrapper PROPERTIES FOLDER cli/test/integration)
diff --git a/tests/cpp/fwk/CMakeLists.txt b/tests/cpp/fwk/CMakeLists.txt
index c6483a4..59a4f3b 100644
--- a/tests/cpp/fwk/CMakeLists.txt
+++ b/tests/cpp/fwk/CMakeLists.txt
@@ -35,4 +35,4 @@
 )
 
 # For Visual Studio organization
-set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER test)
+set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER test-common)
diff --git a/tests/cpp/fwklib/CMakeLists.txt b/tests/cpp/fwklib/CMakeLists.txt
index d0e3773..e93fc11 100644
--- a/tests/cpp/fwklib/CMakeLists.txt
+++ b/tests/cpp/fwklib/CMakeLists.txt
@@ -85,4 +85,4 @@
 )
 
 # For Visual Studio organization
-set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER test)
+set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER cpp/test/integration)
diff --git a/tests/cpp/security/CMakeLists.txt b/tests/cpp/security/CMakeLists.txt
index 08efeaa..9822447 100644
--- a/tests/cpp/security/CMakeLists.txt
+++ b/tests/cpp/security/CMakeLists.txt
@@ -55,4 +55,4 @@
 )
 
 # For Visual Studio organization
-set_target_properties(security PROPERTIES FOLDER test)
+set_target_properties(security PROPERTIES FOLDER cli/test/integration)
diff --git a/tests/cpp/testobject/CMakeLists.txt b/tests/cpp/testobject/CMakeLists.txt
index 8df6cab..8153c79 100644
--- a/tests/cpp/testobject/CMakeLists.txt
+++ b/tests/cpp/testobject/CMakeLists.txt
@@ -98,4 +98,4 @@
 )
 
 # For Visual Studio organization
-set_target_properties(testobject PROPERTIES FOLDER test)
+set_target_properties(testobject PROPERTIES FOLDER test-common)