From a096e52826ca81b1f5dea7e6c20ebe3be390d06e Mon Sep 17 00:00:00 2001 From: zhiru Date: Thu, 30 May 2019 10:12:52 +0800 Subject: [PATCH 1/2] cmake: add -j4 to make third party packages build faster Former-commit-id: c8ce2a8cbcf0d610304131e244d5d5000b4c8645 --- cpp/cmake/ThirdPartyPackages.cmake | 68 +++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 20 deletions(-) diff --git a/cpp/cmake/ThirdPartyPackages.cmake b/cpp/cmake/ThirdPartyPackages.cmake index 0b08cd358a..c0330b20ee 100644 --- a/cpp/cmake/ThirdPartyPackages.cmake +++ b/cpp/cmake/ThirdPartyPackages.cmake @@ -152,14 +152,16 @@ if("${MAKE}" STREQUAL "") endif() endif() -# Using make -j in sub-make is fragile -# see discussion https://github.com/apache/MEGASEARCH/pull/2779 -if(${CMAKE_GENERATOR} MATCHES "Makefiles") - set(MAKE_BUILD_ARGS "") -else() - # limit the maximum number of jobs for ninja - set(MAKE_BUILD_ARGS "-j4") -endif() +set(MAKE_BUILD_ARGS "-j4") + +## Using make -j in sub-make is fragile +## see discussion https://github.com/apache/MEGASEARCH/pull/2779 +#if(${CMAKE_GENERATOR} MATCHES "Makefiles") +# set(MAKE_BUILD_ARGS "") +#else() +# # limit the maximum number of jobs for ninja +# set(MAKE_BUILD_ARGS "-j4") +#endif() # ---------------------------------------------------------------------- # Find pthreads @@ -537,6 +539,9 @@ macro(build_easyloggingpp) ${EP_LOG_OPTIONS} CMAKE_ARGS ${EASYLOGGINGPP_CMAKE_ARGS} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_BYPRODUCTS ${EASYLOGGINGPP_STATIC_LIB}) @@ -577,7 +582,8 @@ macro(build_openblas) BUILD_IN_SOURCE 1 BUILD_COMMAND - ${MAKE} ${MAKE_BUILD_ARGS} + ${MAKE} + ${MAKE_BUILD_ARGS} INSTALL_COMMAND ${MAKE} PREFIX=${OPENBLAS_PREFIX} @@ -623,6 +629,9 @@ macro(build_lapack) ${EP_LOG_OPTIONS} CMAKE_ARGS ${LAPACK_CMAKE_ARGS} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_BYPRODUCTS ${LAPACK_STATIC_LIB}) @@ -694,6 +703,9 @@ macro(build_faiss) # ${FAISS_PREFIX} # BUILD_COMMAND # ${MAKE} ${MAKE_BUILD_ARGS} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_IN_SOURCE 1 # INSTALL_DIR @@ -774,6 +786,9 @@ macro(build_gtest) ExternalProject_Add(googletest_ep URL ${GTEST_SOURCE_URL} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_BYPRODUCTS ${GTEST_STATIC_LIB} ${GTEST_MAIN_STATIC_LIB} @@ -936,27 +951,25 @@ macro(build_prometheus) "${PROMETHEUS_PUSH_STATIC_LIB}" "${PROMETHEUS_PULL_STATIC_LIB}") - #file(MAKE_DIRECTORY "${PROMETHEUS_PREFIX}/include") - + file(MAKE_DIRECTORY "${PROMETHEUS_PREFIX}/push/include") add_library(prometheus-cpp-push STATIC IMPORTED) set_target_properties(prometheus-cpp-push - PROPERTIES IMPORTED_LOCATION "${PROMETHEUS_PUSH_STATIC_LIB}") -# INTERFACE_INCLUDE_DIRECTORIES -# "${PROMETHEUS_PREFIX}/push/include") + PROPERTIES IMPORTED_LOCATION "${PROMETHEUS_PUSH_STATIC_LIB}" + INTERFACE_INCLUDE_DIRECTORIES "${PROMETHEUS_PREFIX}/push/include") add_dependencies(prometheus-cpp-push prometheus_ep) + file(MAKE_DIRECTORY "${PROMETHEUS_PREFIX}/pull/include") add_library(prometheus-cpp-pull STATIC IMPORTED) set_target_properties(prometheus-cpp-pull - PROPERTIES IMPORTED_LOCATION "${PROMETHEUS_PULL_STATIC_LIB}") -# INTERFACE_INCLUDE_DIRECTORIES -# "${PROMETHEUS_PREFIX}/pull/include") + PROPERTIES IMPORTED_LOCATION "${PROMETHEUS_PULL_STATIC_LIB}" + INTERFACE_INCLUDE_DIRECTORIES "${PROMETHEUS_PREFIX}/pull/include") add_dependencies(prometheus-cpp-pull prometheus_ep) + file(MAKE_DIRECTORY "${PROMETHEUS_PREFIX}/core/include") add_library(prometheus-cpp-core STATIC IMPORTED) set_target_properties(prometheus-cpp-core - PROPERTIES IMPORTED_LOCATION "${PROMETHEUS_CORE_STATIC_LIB}") -# INTERFACE_INCLUDE_DIRECTORIES -# "${PROMETHEUS_PREFIX}/core/include") + PROPERTIES IMPORTED_LOCATION "${PROMETHEUS_CORE_STATIC_LIB}" + INTERFACE_INCLUDE_DIRECTORIES "${PROMETHEUS_PREFIX}/core/include") add_dependencies(prometheus-cpp-core prometheus_ep) endmacro() @@ -1049,6 +1062,9 @@ macro(build_snappy) externalproject_add(snappy_ep ${EP_LOG_OPTIONS} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_IN_SOURCE 1 INSTALL_DIR @@ -1358,6 +1374,9 @@ macro(build_thrift) BUILD_BYPRODUCTS "${THRIFT_STATIC_LIB}" "${THRIFT_COMPILER}" + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} CMAKE_ARGS ${THRIFT_CMAKE_ARGS} DEPENDS @@ -1399,6 +1418,9 @@ macro(build_yamlcpp) URL ${YAMLCPP_SOURCE_URL} ${EP_LOG_OPTIONS} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_BYPRODUCTS "${YAMLCPP_STATIC_LIB}" CMAKE_ARGS @@ -1446,6 +1468,9 @@ macro(build_zlib) URL ${ZLIB_SOURCE_URL} ${EP_LOG_OPTIONS} + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} BUILD_BYPRODUCTS "${ZLIB_STATIC_LIB}" CMAKE_ARGS @@ -1513,6 +1538,9 @@ macro(build_zstd) ${ZSTD_CMAKE_ARGS} SOURCE_SUBDIR "build/cmake" + BUILD_COMMAND + ${MAKE} + ${MAKE_BUILD_ARGS} INSTALL_DIR ${ZSTD_PREFIX} URL From 18bd96346281026e9d99eebd2cc65655ebdeba2b Mon Sep 17 00:00:00 2001 From: zhiru Date: Thu, 30 May 2019 10:18:34 +0800 Subject: [PATCH 2/2] update changelog Former-commit-id: d751122297499c3ce581cb757285b2a3896046ca --- cpp/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/cpp/CHANGELOG.md b/cpp/CHANGELOG.md index efb810e2a5..fbd8f14720 100644 --- a/cpp/CHANGELOG.md +++ b/cpp/CHANGELOG.md @@ -16,6 +16,7 @@ Please mark all change in change log and use the ticket from JIRA. - MS-21 - Implement SDK interface part 2 - MS-26 - cmake. Add thirdparty packages - MS-31 - cmake: add prometheus +- MS-33 - cmake: add -j4 to make third party packages build faster ### Task