Skip to content

Commit 5aaa97d

Browse files
committed
Creating the branch paths for Legacy/Non legacy in Core library build
1 parent 8f0b0c3 commit 5aaa97d

File tree

5 files changed

+685
-671
lines changed

5 files changed

+685
-671
lines changed

CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ else ()
7676
message(STATUS "Building tests")
7777
enable_testing()
7878
# Testing dependency
79-
find_package(GTest 1.11 REQUIRED )
79+
find_package(GTest 1.11 REQUIRED)
8080
include(GoogleTest) # for gtest_discover_tests()
8181
endif ()
8282

@@ -88,6 +88,9 @@ else ()
8888
pkg_check_modules(CJSON REQUIRED IMPORTED_TARGET libcjson>=1.7.15)
8989
find_package(aws-crt-cpp 0.17.9 EXACT REQUIRED COMPONENTS io)
9090

91+
message(STATUS "Preparing core library build")
92+
add_subdirectory(src)
93+
9194
message(WARNING "The dependencies are currently checked only for a basic Linux build, new ones need to be added for other platforms yet")
9295

9396
message(WARNING "Anything below this warning is a TODO not yet implemented.")
@@ -104,5 +107,4 @@ else ()
104107
message(STATUS "Setting up docs.")
105108
message(STATUS "Add support support for SDK flags.")
106109
message(STATUS "Add previously available options.")
107-
108110
endif ()

cmake/Findaws-crt-cpp.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
# This is a temporary mock file to be able to test our current build setup.
22
# The file will later be read from CRTpp installation
3-
message(WARNING "AWSCRTpp is mocked for testing of experimental feature branch. Remove this file when CRT starts providing it.")
3+
message(WARNING "aws-crt-cpp package is mocked for testing of experimental feature branch. Remove this file when CRT starts providing it.")

src/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
add_subdirectory(aws-cpp-sdk-core)
2+
if (BUILD_TESTING)
3+
add_subdirectory(aws-cpp-sdk-core-tests)
4+
endif ()
Lines changed: 127 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,123 +1,127 @@
1-
add_project(aws-cpp-sdk-core-tests
2-
"Tests for the AWS Core C++ Library"
3-
testing-resources
4-
aws-cpp-sdk-core )
5-
6-
# Headers are included in the source so that they show up in Visual Studio.
7-
# They are included elsewhere for consistency.
8-
file(GLOB AWS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/*.cpp")
9-
file(GLOB AWS_AUTH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/auth/*.cpp")
10-
file(GLOB AWS_CONFIG_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/config/*.cpp")
11-
file(GLOB AWS_CLIENT_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/client/*.cpp")
12-
file(GLOB AWS_NET_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/net/*.cpp")
13-
file(GLOB HTTP_SRC "${CMAKE_CURRENT_SOURCE_DIR}/http/*.cpp")
14-
file(GLOB UTILS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/*.cpp")
15-
file(GLOB UTILS_CRYPTO_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/crypto/*.cpp")
16-
file(GLOB UTILS_EVENT_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/event/*.cpp")
17-
file(GLOB UTILS_JSON_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/json/*.cpp")
18-
file(GLOB UTILS_STREAM_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/stream/*.cpp")
19-
file(GLOB UTILS_LOGGING_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/logging/*.cpp")
20-
file(GLOB UTILS_RATE_LIMITER_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/ratelimiter/*.cpp")
21-
file(GLOB UTILS_XML_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/xml/*.cpp")
22-
file(GLOB UTILS_THREADING_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/threading/*.cpp")
23-
file(GLOB UTILS_MEMORY_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/memory/*.cpp")
24-
file(GLOB MONITORING_SRC "${CMAKE_CURRENT_SOURCE_DIR}/monitoring/*.cpp")
25-
26-
27-
file(GLOB AWS_CPP_SDK_CORE_TESTS_SRC
28-
"${CMAKE_CURRENT_SOURCE_DIR}/RunTests.cpp"
29-
"${CMAKE_CURRENT_SOURCE_DIR}/VersionTests.cpp"
30-
${AWS_SRC}
31-
${AWS_AUTH_SRC}
32-
${AWS_CONFIG_SRC}
33-
${MONITORING_SRC}
34-
${AWS_CLIENT_SRC}
35-
${AWS_NET_SRC}
36-
${HTTP_SRC}
37-
${UTILS_SRC}
38-
${UTILS_CRYPTO_SRC}
39-
${UTILS_EVENT_SRC}
40-
${UTILS_JSON_SRC}
41-
${UTILS_STREAM_SRC}
42-
${UTILS_XML_SRC}
43-
${UTILS_THREADING_SRC}
44-
${UTILS_MEMORY_SRC}
45-
${UTILS_LOGGING_SRC}
46-
${UTILS_RATE_LIMITER_SRC}
47-
)
48-
49-
if(PLATFORM_WINDOWS)
50-
if(MSVC)
51-
source_group("Source Files\\aws" FILES ${AWS_SRC})
52-
source_group("Source Files\\aws\\auth" FILES ${AWS_AUTH_SRC})
53-
source_group("Source Files\\aws\\config" FILES ${AWS_CONFIG_SRC})
54-
source_group("Source Files\\aws\\client" FILES ${AWS_CLIENT_SRC})
55-
source_group("Source Files\\aws\\net" FILES ${AWS_NET_SRC})
56-
source_group("Source Files\\http" FILES ${HTTP_SRC})
57-
source_group("Source Files\\monitoring" FILES ${MONITORING_SRC})
58-
source_group("Source Files\\utils" FILES ${UTILS_SRC})
59-
source_group("Source Files\\utils\\crypto" FILES ${UTILS_CRYPTO_SRC})
60-
source_group("Source Files\\utils\\event" FILES ${UTILS_EVENT_SRC})
61-
source_group("Source Files\\utils\\json" FILES ${UTILS_JSON_SRC})
62-
source_group("Source Files\\utils\\stream" FILES ${UTILS_STREAM_SRC})
63-
source_group("Source Files\\utils\\xml" FILES ${UTILS_XML_SRC})
64-
source_group("Source Files\\utils\\logging" FILES ${UTILS_LOGGING_SRC})
65-
source_group("Source Files\\utils\\ratelimiter" FILES ${UTILS_RATE_LIMITER_SRC})
66-
source_group("Source Files\\utils\\memory" FILES ${UTILS_MEMORY_SRC})
67-
source_group("Source Files\\utils\\threading" FILES ${UTILS_THREADING_SRC})
68-
endif()
69-
endif()
70-
71-
if(PLATFORM_CUSTOM)
72-
if(COMMAND add_custom_core_testing_definitions)
73-
add_custom_core_testing_definitions()
74-
endif()
75-
endif()
76-
77-
if (CMAKE_CROSSCOMPILING)
78-
set(AUTORUN_UNIT_TESTS OFF)
79-
endif()
80-
81-
if (AUTORUN_UNIT_TESTS)
82-
enable_testing()
83-
endif()
84-
85-
if(USE_WINDOWS_DLL_SEMANTICS AND BUILD_SHARED_LIBS)
86-
add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
87-
endif()
88-
89-
if(PLATFORM_ANDROID AND BUILD_SHARED_LIBS)
90-
add_library(${PROJECT_NAME} ${AWS_CPP_SDK_CORE_TESTS_SRC})
91-
else()
92-
add_executable(${PROJECT_NAME} ${AWS_CPP_SDK_CORE_TESTS_SRC})
93-
endif()
94-
95-
set_compiler_flags(${PROJECT_NAME})
96-
set_compiler_warnings(${PROJECT_NAME})
97-
98-
if (NO_HTTP_CLIENT)
99-
target_compile_definitions(${PROJECT_NAME} PRIVATE "NO_HTTP_CLIENT")
100-
endif()
101-
102-
target_link_libraries(${PROJECT_NAME} ${PROJECT_LIBS} ${CLIENT_LIBS})
103-
104-
if(ENABLE_FUNCTIONAL_TESTING)
105-
target_link_libraries(${PROJECT_NAME} aws-cpp-sdk-document-test)
106-
endif()
107-
108-
add_custom_command(TARGET aws-cpp-sdk-core-tests PRE_BUILD
109-
COMMAND ${CMAKE_COMMAND} -E copy_directory
110-
${CMAKE_CURRENT_SOURCE_DIR}/resources ${CMAKE_CURRENT_BINARY_DIR})
111-
112-
if (ENABLE_HTTP_CLIENT_TESTING)
113-
add_definitions(-DENABLE_HTTP_CLIENT_TESTING)
114-
endif()
115-
116-
if (AUTORUN_UNIT_TESTS)
117-
ADD_CUSTOM_COMMAND( TARGET ${PROJECT_NAME} POST_BUILD COMMAND $<TARGET_FILE:${PROJECT_NAME}>
118-
ARGS "--gtest_shuffle" "--gtest_repeat=3")
119-
endif()
120-
121-
if(NOT CMAKE_CROSSCOMPILING)
122-
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
123-
endif()
1+
if (NOT LEGACY_BUILD)
2+
message(WARNING "Building core with new cmake scripts not yet implemented")
3+
else ()
4+
add_project(aws-cpp-sdk-core-tests
5+
"Tests for the AWS Core C++ Library"
6+
testing-resources
7+
aws-cpp-sdk-core)
8+
9+
# Headers are included in the source so that they show up in Visual Studio.
10+
# They are included elsewhere for consistency.
11+
file(GLOB AWS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/*.cpp")
12+
file(GLOB AWS_AUTH_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/auth/*.cpp")
13+
file(GLOB AWS_CONFIG_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/config/*.cpp")
14+
file(GLOB AWS_CLIENT_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/client/*.cpp")
15+
file(GLOB AWS_NET_SRC "${CMAKE_CURRENT_SOURCE_DIR}/aws/net/*.cpp")
16+
file(GLOB HTTP_SRC "${CMAKE_CURRENT_SOURCE_DIR}/http/*.cpp")
17+
file(GLOB UTILS_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/*.cpp")
18+
file(GLOB UTILS_CRYPTO_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/crypto/*.cpp")
19+
file(GLOB UTILS_EVENT_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/event/*.cpp")
20+
file(GLOB UTILS_JSON_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/json/*.cpp")
21+
file(GLOB UTILS_STREAM_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/stream/*.cpp")
22+
file(GLOB UTILS_LOGGING_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/logging/*.cpp")
23+
file(GLOB UTILS_RATE_LIMITER_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/ratelimiter/*.cpp")
24+
file(GLOB UTILS_XML_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/xml/*.cpp")
25+
file(GLOB UTILS_THREADING_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/threading/*.cpp")
26+
file(GLOB UTILS_MEMORY_SRC "${CMAKE_CURRENT_SOURCE_DIR}/utils/memory/*.cpp")
27+
file(GLOB MONITORING_SRC "${CMAKE_CURRENT_SOURCE_DIR}/monitoring/*.cpp")
28+
29+
30+
file(GLOB AWS_CPP_SDK_CORE_TESTS_SRC
31+
"${CMAKE_CURRENT_SOURCE_DIR}/RunTests.cpp"
32+
"${CMAKE_CURRENT_SOURCE_DIR}/VersionTests.cpp"
33+
${AWS_SRC}
34+
${AWS_AUTH_SRC}
35+
${AWS_CONFIG_SRC}
36+
${MONITORING_SRC}
37+
${AWS_CLIENT_SRC}
38+
${AWS_NET_SRC}
39+
${HTTP_SRC}
40+
${UTILS_SRC}
41+
${UTILS_CRYPTO_SRC}
42+
${UTILS_EVENT_SRC}
43+
${UTILS_JSON_SRC}
44+
${UTILS_STREAM_SRC}
45+
${UTILS_XML_SRC}
46+
${UTILS_THREADING_SRC}
47+
${UTILS_MEMORY_SRC}
48+
${UTILS_LOGGING_SRC}
49+
${UTILS_RATE_LIMITER_SRC}
50+
)
51+
52+
if (PLATFORM_WINDOWS)
53+
if (MSVC)
54+
source_group("Source Files\\aws" FILES ${AWS_SRC})
55+
source_group("Source Files\\aws\\auth" FILES ${AWS_AUTH_SRC})
56+
source_group("Source Files\\aws\\config" FILES ${AWS_CONFIG_SRC})
57+
source_group("Source Files\\aws\\client" FILES ${AWS_CLIENT_SRC})
58+
source_group("Source Files\\aws\\net" FILES ${AWS_NET_SRC})
59+
source_group("Source Files\\http" FILES ${HTTP_SRC})
60+
source_group("Source Files\\monitoring" FILES ${MONITORING_SRC})
61+
source_group("Source Files\\utils" FILES ${UTILS_SRC})
62+
source_group("Source Files\\utils\\crypto" FILES ${UTILS_CRYPTO_SRC})
63+
source_group("Source Files\\utils\\event" FILES ${UTILS_EVENT_SRC})
64+
source_group("Source Files\\utils\\json" FILES ${UTILS_JSON_SRC})
65+
source_group("Source Files\\utils\\stream" FILES ${UTILS_STREAM_SRC})
66+
source_group("Source Files\\utils\\xml" FILES ${UTILS_XML_SRC})
67+
source_group("Source Files\\utils\\logging" FILES ${UTILS_LOGGING_SRC})
68+
source_group("Source Files\\utils\\ratelimiter" FILES ${UTILS_RATE_LIMITER_SRC})
69+
source_group("Source Files\\utils\\memory" FILES ${UTILS_MEMORY_SRC})
70+
source_group("Source Files\\utils\\threading" FILES ${UTILS_THREADING_SRC})
71+
endif ()
72+
endif ()
73+
74+
if (PLATFORM_CUSTOM)
75+
if (COMMAND add_custom_core_testing_definitions)
76+
add_custom_core_testing_definitions()
77+
endif ()
78+
endif ()
79+
80+
if (CMAKE_CROSSCOMPILING)
81+
set(AUTORUN_UNIT_TESTS OFF)
82+
endif ()
83+
84+
if (AUTORUN_UNIT_TESTS)
85+
enable_testing()
86+
endif ()
87+
88+
if (USE_WINDOWS_DLL_SEMANTICS AND BUILD_SHARED_LIBS)
89+
add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1)
90+
endif ()
91+
92+
if (PLATFORM_ANDROID AND BUILD_SHARED_LIBS)
93+
add_library(${PROJECT_NAME} ${AWS_CPP_SDK_CORE_TESTS_SRC})
94+
else ()
95+
add_executable(${PROJECT_NAME} ${AWS_CPP_SDK_CORE_TESTS_SRC})
96+
endif ()
97+
98+
set_compiler_flags(${PROJECT_NAME})
99+
set_compiler_warnings(${PROJECT_NAME})
100+
101+
if (NO_HTTP_CLIENT)
102+
target_compile_definitions(${PROJECT_NAME} PRIVATE "NO_HTTP_CLIENT")
103+
endif ()
104+
105+
target_link_libraries(${PROJECT_NAME} ${PROJECT_LIBS} ${CLIENT_LIBS})
106+
107+
if (ENABLE_FUNCTIONAL_TESTING)
108+
target_link_libraries(${PROJECT_NAME} aws-cpp-sdk-document-test)
109+
endif ()
110+
111+
add_custom_command(TARGET aws-cpp-sdk-core-tests PRE_BUILD
112+
COMMAND ${CMAKE_COMMAND} -E copy_directory
113+
${CMAKE_CURRENT_SOURCE_DIR}/resources ${CMAKE_CURRENT_BINARY_DIR})
114+
115+
if (ENABLE_HTTP_CLIENT_TESTING)
116+
add_definitions(-DENABLE_HTTP_CLIENT_TESTING)
117+
endif ()
118+
119+
if (AUTORUN_UNIT_TESTS)
120+
ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD COMMAND $<TARGET_FILE:${PROJECT_NAME}>
121+
ARGS "--gtest_shuffle" "--gtest_repeat=3")
122+
endif ()
123+
124+
if (NOT CMAKE_CROSSCOMPILING)
125+
SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
126+
endif ()
127+
endif ()

0 commit comments

Comments
 (0)