include(${CMAKE_CURRENT_LIST_DIR}/../utils.cmake)
file(READ "${DEPENDENCY_JSON_FILE}" DEP_JSON_STRING)
download_open_source("${OPENSOURCE_COMPONENT_NAME}" "${FILE_GLOB_PATTERN}" "${THIRD_PARTY_CACHE_DIR}")
set(THREAD_NUM "${THREAD_NUM}") # clean warning
list(JOIN THIRD_PARTY_CXX_FLAGS " " THIRD_PARTY_CXX_FLAGS_STR)
if(EXISTS "${MOCKCPP_OUTPUT_DIR}/lib/")
message(STATUS "${OPENSOURCE_COMPONENT_NAME} already built, skipping.")
return()
endif()
set(PKG_DOWNLOAD_DIR "${THIRD_PARTY_SRC_DIR}/${OPENSOURCE_COMPONENT_NAME}")
set(MOCKCPP_BUILD_DIR "${PKG_DOWNLOAD_DIR}/build")
file(MAKE_DIRECTORY "${MOCKCPP_BUILD_DIR}")
execute_process(
COMMAND bash -c "patch -p1 -f < ${THIRD_PARTY_SRC_DIR}/../tests/update.patch || true"
WORKING_DIRECTORY ${PKG_DOWNLOAD_DIR} OUTPUT_QUIET
)
execute_process(
COMMAND cmake ${PKG_DOWNLOAD_DIR} -DCMAKE_INSTALL_PREFIX=${MOCKCPP_OUTPUT_DIR}
-DCMAKE_CXX_FLAGS=${THIRD_PARTY_CXX_FLAGS_STR}
WORKING_DIRECTORY ${MOCKCPP_BUILD_DIR} OUTPUT_QUIET
)
execute_process(
COMMAND cmake --build . -j${THREAD_NUM}
WORKING_DIRECTORY ${MOCKCPP_BUILD_DIR} OUTPUT_QUIET
)
execute_process(
COMMAND cmake --install .
WORKING_DIRECTORY ${MOCKCPP_BUILD_DIR} OUTPUT_QUIET
)
message(STATUS "${OPENSOURCE_COMPONENT_NAME} has been successfully built and installed to ${MOCKCPP_OUTPUT_DIR}")