diff --git a/cpp/CHANGELOG.md b/cpp/CHANGELOG.md index 0b257f2a03b740e699d4af5b884adcb9cca61194..94a9479ed4bed0658c3ae992b649f03b1b4d9b9f 100644 --- a/cpp/CHANGELOG.md +++ b/cpp/CHANGELOG.md @@ -8,6 +8,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-80 - Fix server hang issue - MS-89 - Fix compile failed, libgpufaiss.a link missing - MS-90 - Fix arch match incorrect on ARM +- MS-99 - Fix compilation bug ## Improvement - MS-82 - Update server startup welcome message @@ -15,6 +16,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-77 - Performance issue of post-search action - MS-22 - Enhancement for MemVector size control - MS-92 - Unify behavior of debug and release build +- MS-98 - Install all unit test to installation directory ## New Feature @@ -49,6 +51,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-34 - Fix prometheus-cpp thirdparty - MS-67 - Fix license check bug - MS-76 - Fix pipeline crash bug +- MS-100 - cmake: fix AWS build issue ## Improvement diff --git a/cpp/cmake/ThirdPartyPackages.cmake b/cpp/cmake/ThirdPartyPackages.cmake index 429d6c9d44dde477dc8bb630486ac849c70559e5..daffe72ec0078d1c06eecddafd409b9b2892f150 100644 --- a/cpp/cmake/ThirdPartyPackages.cmake +++ b/cpp/cmake/ThirdPartyPackages.cmake @@ -1762,7 +1762,10 @@ macro(build_aws) -DENABLE_UNITY_BUILD=on -DNO_ENCRYPTION=off) - set(AWS_STATIC_LIB "${AWS_PREFIX}/lib/libs3.a") + set(AWS_CPP_SDK_CORE_STATIC_LIB + "${AWS_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-core${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(AWS_CPP_SDK_S3_STATIC_LIB + "${AWS_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-s3${CMAKE_STATIC_LIBRARY_SUFFIX}") # Only pass our C flags on Unix as on MSVC it leads to a # "incompatible command-line options" error set(AWS_CMAKE_ARGS @@ -1788,24 +1791,40 @@ macro(build_aws) URL ${AWS_SOURCE_URL} BUILD_BYPRODUCTS - "${AWS_STATIC_LIB}") + "${AWS_CPP_SDK_S3_STATIC_LIB}" + "${AWS_CPP_SDK_CORE_STATIC_LIB}") file(MAKE_DIRECTORY "${AWS_PREFIX}/include") - add_library(aws STATIC IMPORTED) - set_target_properties(aws - PROPERTIES IMPORTED_LOCATION "${AWS_STATIC_LIB}" - INTERFACE_INCLUDE_DIRECTORIES "${AWS_PREFIX}/include") + add_library(aws-cpp-sdk-s3 STATIC IMPORTED) + set_target_properties(aws-cpp-sdk-s3 + PROPERTIES + IMPORTED_LOCATION "${AWS_CPP_SDK_S3_STATIC_LIB}" + INTERFACE_INCLUDE_DIRECTORIES "${AWS_PREFIX}/include" + INTERFACE_LINK_LIBRARIES "${AWS_PREFIX}/lib/libaws-c-event-stream.a;${AWS_PREFIX}/lib/libaws-checksums.a;${AWS_PREFIX}/lib/libaws-c-common.a") + + add_library(aws-cpp-sdk-core STATIC IMPORTED) + set_target_properties(aws-cpp-sdk-core + PROPERTIES IMPORTED_LOCATION "${AWS_CPP_SDK_CORE_STATIC_LIB}" + INTERFACE_INCLUDE_DIRECTORIES "${AWS_PREFIX}/include" + INTERFACE_LINK_LIBRARIES "${AWS_PREFIX}/lib/libaws-c-event-stream.a;${AWS_PREFIX}/lib/libaws-checksums.a;${AWS_PREFIX}/lib/libaws-c-common.a") + + add_dependencies(aws-cpp-sdk-s3 aws_ep) + add_dependencies(aws-cpp-sdk-core aws_ep) - add_dependencies(aws aws_ep) endmacro() if(MILVUS_WITH_AWS) resolve_dependency(AWS) # TODO: Don't use global includes but rather target_include_directories - get_target_property(AWS_INCLUDE_DIR aws INTERFACE_INCLUDE_DIRECTORIES) link_directories(SYSTEM ${AWS_PREFIX}/lib) - include_directories(SYSTEM ${AWS_INCLUDE_DIR}) + + get_target_property(AWS_CPP_SDK_S3_INCLUDE_DIR aws-cpp-sdk-s3 INTERFACE_INCLUDE_DIRECTORIES) + include_directories(SYSTEM ${AWS_CPP_SDK_S3_INCLUDE_DIR}) + + get_target_property(AWS_CPP_SDK_CORE_INCLUDE_DIR aws-cpp-sdk-core INTERFACE_INCLUDE_DIRECTORIES) + include_directories(SYSTEM ${AWS_CPP_SDK_CORE_INCLUDE_DIR}) + endif() diff --git a/cpp/src/CMakeLists.txt b/cpp/src/CMakeLists.txt index 807c16f5b301dc7a86824dd5d7d474bf5973e58d..e00420b2d1be8fb98204fca87aa9af651a3ad3c9 100644 --- a/cpp/src/CMakeLists.txt +++ b/cpp/src/CMakeLists.txt @@ -160,7 +160,6 @@ add_executable(milvus_server ${utils_files} ${service_files} ${metrics_files} - #${EASYLOGGINGPP_INCLUDE_DIR}/easylogging++.cc ) if (ENABLE_LICENSE STREQUAL "ON") @@ -183,11 +182,3 @@ endif () install(TARGETS milvus_server DESTINATION bin) add_subdirectory(sdk) -#target_link_libraries( -# libprometheus-cpp-push.a -# libprometheus-cpp-pull.a -# libprometheus-cpp-core.a -# pthread -# z -# ${CURL_LIBRARIES}) - diff --git a/cpp/src/sdk/CMakeLists.txt b/cpp/src/sdk/CMakeLists.txt index 093e2243a93d2ac92316ed677731c85d040c3b9b..a43f0b85de0fcf237a1c5daac95622284c47707c 100644 --- a/cpp/src/sdk/CMakeLists.txt +++ b/cpp/src/sdk/CMakeLists.txt @@ -31,3 +31,5 @@ target_link_libraries(milvus_sdk ) add_subdirectory(examples) + +install(TARGETS milvus_sdk DESTINATION bin) diff --git a/cpp/src/sdk/examples/simple/CMakeLists.txt b/cpp/src/sdk/examples/simple/CMakeLists.txt index cad08d856c2cfb26068ed10f6da65296cf051196..a288965aa3a4a9c3f510120c5c47ccb005374054 100644 --- a/cpp/src/sdk/examples/simple/CMakeLists.txt +++ b/cpp/src/sdk/examples/simple/CMakeLists.txt @@ -20,3 +20,5 @@ target_link_libraries(sdk_simple milvus_sdk pthread ) + +install(TARGETS sdk_simple DESTINATION bin) diff --git a/cpp/unittest/db/CMakeLists.txt b/cpp/unittest/db/CMakeLists.txt index df47f14c659426d003c13588a3549acd67757eb9..c9b7ea7dcc7071b3f599b36cc77719561700dda6 100644 --- a/cpp/unittest/db/CMakeLists.txt +++ b/cpp/unittest/db/CMakeLists.txt @@ -37,7 +37,7 @@ set(db_test_src cuda_add_executable(db_test ${db_test_src}) set(db_libs - gpufaiss + libgpufaiss.a faiss cudart cublas @@ -48,3 +48,5 @@ set(db_libs ) target_link_libraries(db_test ${db_libs} ${unittest_libs}) + +install(TARGETS db_test DESTINATION bin) \ No newline at end of file diff --git a/cpp/unittest/faiss_wrapper/CMakeLists.txt b/cpp/unittest/faiss_wrapper/CMakeLists.txt index b0830d5a87feee2ecc1a2f8049b5095b3e5d92e6..f044df8d8cf225ff8235896d6d8c8bd972dcefd7 100644 --- a/cpp/unittest/faiss_wrapper/CMakeLists.txt +++ b/cpp/unittest/faiss_wrapper/CMakeLists.txt @@ -24,7 +24,7 @@ set(wrapper_libs stdc++ boost_system boost_filesystem - gpufaiss + libgpufaiss.a faiss cudart cublas @@ -41,5 +41,4 @@ set(topk_test_src topk_test.cpp ${CMAKE_SOURCE_DIR}/src/wrapper/gpu/Topk.cu) -#cuda_add_executable(topk_test ${topk_test_src}) -#target_link_libraries(topk_test ${unittest_libs} ${faiss_libs}) +install(TARGETS wrapper_test DESTINATION bin) diff --git a/cpp/unittest/main.cpp b/cpp/unittest/main.cpp index 930310fd93a37c99f9201fd34d12253e725a59ce..dac5bc7013259d5e6b1bebc75a9f7d29265c1479 100644 --- a/cpp/unittest/main.cpp +++ b/cpp/unittest/main.cpp @@ -15,12 +15,6 @@ INITIALIZE_EASYLOGGINGPP using namespace zilliz::milvus; int main(int argc, char **argv) { - std::string exe_path = server::CommonUtil::GetExePath(); - std::string config_filename = exe_path + "/../../../conf/server_config.yaml"; - zilliz::milvus::server::ServerConfig& config = zilliz::milvus::server::ServerConfig::GetInstance(); - config.LoadConfigFile(config_filename); - std::cout << "Load config file form: " << config_filename << std::endl; - ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } diff --git a/cpp/unittest/metrics/CMakeLists.txt b/cpp/unittest/metrics/CMakeLists.txt index 9ae711ce252f424d12b47c66123f7071b58ea38a..72e1b43867eb1291131f9d86cef08bb4a0cb002e 100644 --- a/cpp/unittest/metrics/CMakeLists.txt +++ b/cpp/unittest/metrics/CMakeLists.txt @@ -62,7 +62,7 @@ set(count_test_src add_executable(metrics_test ${count_test_src} ${require_files} ) target_link_libraries(metrics_test - gpufaiss + libgpufaiss.a faiss cudart cublas @@ -72,10 +72,9 @@ target_link_libraries(metrics_test lz4 metrics gtest -# prometheus-cpp-pull -# prometheus-cpp-push -# prometheus-cpp-core pthread z ${unittest_libs} - ) \ No newline at end of file + ) + +install(TARGETS metrics_test DESTINATION bin) \ No newline at end of file diff --git a/cpp/unittest/server/CMakeLists.txt b/cpp/unittest/server/CMakeLists.txt index 40677d23c9aabdfbdf12aa1a1ba6b6f28e92fcfd..d844b7a9a3daafd811837930120bdbcbf6c24b10 100644 --- a/cpp/unittest/server/CMakeLists.txt +++ b/cpp/unittest/server/CMakeLists.txt @@ -31,7 +31,7 @@ cuda_add_executable(server_test set(require_libs stdc++ - gpufaiss + libgpufaiss.a faiss cudart cublas @@ -51,3 +51,5 @@ target_link_libraries(server_test ${cuda_library} ${unittest_libs} ) + +install(TARGETS server_test DESTINATION bin) diff --git a/cpp/unittest/storage/CMakeLists.txt b/cpp/unittest/storage/CMakeLists.txt index 019f3d363599414287e2b647611be7e17320b8d8..6b4303b70ab32eaedee3b4540e14b31541c9a531 100644 --- a/cpp/unittest/storage/CMakeLists.txt +++ b/cpp/unittest/storage/CMakeLists.txt @@ -6,14 +6,14 @@ aux_source_directory(${MILVUS_ENGINE_SRC}/storage/s3 s3_client_src) # Make sure that your call to link_directories takes place before your call to the relevant add_executable. -include_directories(/usr/local/cuda/include) -link_directories("/usr/local/cuda/lib64") +include_directories("${CUDA_TOOLKIT_ROOT_DIR}/include") +link_directories("${CUDA_TOOLKIT_ROOT_DIR}/lib64") set(s3_client_test_src ${unittest_srcs} ${s3_client_src} ${require_files} - s3_client_test.cpp + S3ClientTest.cpp ${MILVUS_ENGINE_SRC}/db/Status.cpp ) @@ -23,11 +23,8 @@ add_executable(s3_test set(s3_client_libs stdc++ - libaws-cpp-sdk-s3.a - libaws-cpp-sdk-core.a - libaws-c-event-stream.a - libaws-checksums.a - libaws-c-common.a + aws-cpp-sdk-s3 + aws-cpp-sdk-core boost_filesystem ) target_link_libraries(s3_test @@ -35,3 +32,5 @@ target_link_libraries(s3_test ${unittest_libs} curl crypto) + +install(TARGETS s3_test DESTINATION bin) \ No newline at end of file diff --git a/cpp/unittest/storage/s3_client_test.cpp b/cpp/unittest/storage/S3ClientTest.cpp similarity index 95% rename from cpp/unittest/storage/s3_client_test.cpp rename to cpp/unittest/storage/S3ClientTest.cpp index 6955232638f4220d6b19e617eb554b0d4eae4dd6..c83209ecf65c01a878577e99fa927071fa62140d 100644 --- a/cpp/unittest/storage/s3_client_test.cpp +++ b/cpp/unittest/storage/S3ClientTest.cpp @@ -8,7 +8,6 @@ #include "storage/s3/S3ClientWrapper.h" #include #include -#include #include