diff --git a/CMakeLists.txt b/CMakeLists.txt index 61977f3bfb55d1414307b5fc8109ed8f1e27cb5c..b2751a2ae3ebc03c2b7be0f2ee528db57c0e2148 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,25 +7,29 @@ find_program(UNZIP_PATH unzip REQUIRED) find_program(MAKE_PATH NAMES make REQUIRED) find_program(PATCH_PATH NAMES patch REQUIRED) find_program(ENV_PATH NAMES env REQUIRED) +find_program(SH_PATH NAMES sh REQUIRED) if(CMAKE_C_COMPILER MATCHES "mingw") set(MAKE_FLAGS MINGW32_NT-6.1 OSNAME=win32) -endif() - -if("$ENV{CMAKE_BUILD_PARALLEL_LEVEL}" STREQUAL "") - set(MAKE_FLAGS ${MAKE_FLAGS} -j 32) + set(BUILD_CMD ${MAKE_PATH} ${MAKE_FLAGS} else() - set(MAKE_FLAGS ${MAKE_FLAGS} -j $ENV{CMAKE_BUILD_PARALLEL_LEVEL}) + if("$ENV{CMAKE_BUILD_PARALLEL_LEVEL}" STREQUAL "") + set(MAKE_FLAGS ${MAKE_FLAGS} -j 32) + else() + set(MAKE_FLAGS ${MAKE_FLAGS} -j $ENV{CMAKE_BUILD_PARALLEL_LEVEL}) + endif() + set(BUILD_CMD ${ENV_PATH} - PATH=$ENV{PATH} ${CROSS_MAKE_ENV} ${MAKE_PATH} ${MAKE_FLAGS} endif() + ExternalProject_Add( CryptlibBuild DOWNLOAD_COMMAND "${UNZIP_PATH}" -oa "${CMAKE_CURRENT_SOURCE_DIR}/dist/cryptlib.zip" -d "<SOURCE_DIR>" UPDATE_COMMAND "" CONFIGURE_COMMAND "" - PATCH_COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/patch.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "<SOURCE_DIR>" + PATCH_COMMAND ${SH_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/patch.sh" "${CMAKE_CURRENT_SOURCE_DIR}" "<SOURCE_DIR>" BUILD_IN_SOURCE TRUE - BUILD_COMMAND ${ENV_PATH} - PATH=$ENV{PATH} ${CROSS_MAKE_ENV} ${MAKE_PATH} ${MAKE_FLAGS} + BUILD_COMMAND ${BUILD_CMD} # This is actually an install byproduct but hey... ¯\_(ツ)_/¯ BUILD_BYPRODUCTS ${Cryptlib_BINARY_DIR}/libcl.a INSTALL_COMMAND cp "<SOURCE_DIR>/cryptlib.h" "<SOURCE_DIR>/libcl.a" ${Cryptlib_BINARY_DIR}