Skip to content
Snippets Groups Projects
Commit 6907ea2f authored by Stephen Hurd's avatar Stephen Hurd
Browse files

First attempt at MSVC and MinGW32 support

parent 67f499da
No related branches found
No related tags found
No related merge requests found
......@@ -4,16 +4,27 @@ project (Cryptlib C)
include("ExternalProject")
find_program(PATCH_PATH NAMES patch HINTS "C:/Program Files/Git/usr/bin" "C:/Program Files (x86)/Git/usr/bin" REQUIRED)
find_program(ENV_PATH NAMES env REQUIRED)
find_program(SH_PATH NAMES sh REQUIRED)
find_program(SH_PATH NAMES sh HINTS "C:/Program Files/Git/usr/bin" "C:/Program Files (x86)/Git/usr/bin" REQUIRED)
find_program(FIND_PATH NAMES find PATHS "C:/Program Files/Git/usr/bin" "C:/Program Files (x86)/Git/usr/bin" NO_DEFAULT_PATH)
find_program(FIND_PATH NAMES find)
if(WIN32)
set(MAKE_FLAGS MINGW32_NT-6.1 OSNAME=win32 RANLIB=${CMAKE_RANLIB} AR=${CMAKE_AR} CC=${CMAKE_C_COMPILER} MAKE=${MAKE_PATH})
if(MSVC)
find_program(MAKE_PATH NAMES make mingw32-make REQUIRED)
find_program(UNZIP_PATH tar REQUIRED)
set(DOWNLOAD_CMD "${UNZIP_PATH}" -xf "${CMAKE_CURRENT_SOURCE_DIR}/dist/cryptlib.zip" -C "<SOURCE_DIR>")
find_program(MAKE_PATH NAMES msbuild REQUIRED)
set(BUILD_CMD ${msbuild} /p:Configuration=Release /p:Platform=Win32 cryptlib.sln)
set(BUILD_CMD ${MAKE_PATH} /p:Configuration=Release /p:Platform=Win32 "<SOURCE_DIR>/crypt32.sln")
set(INSTALL_CMD ${CMAKE_CURRENT_SOURCE_DIR}/install.bat "<SOURCE_DIR>" "${Cryptlib_BINARY_DIR}")
else()
set(MAKE_FLAGS MINGW32_NT-6.1 OSNAME=win32 RANLIB=${CMAKE_RANLIB} AR=${CMAKE_AR} CC=${CMAKE_C_COMPILER} MAKE=${MAKE_PATH})
set(BUILD_CMD ${MAKE_PATH} ${MAKE_FLAGS})
find_program(UNZIP_PATH tar REQUIRED)
set(DOWNLOAD_CMD "${UNZIP_PATH}" -xf "${CMAKE_CURRENT_SOURCE_DIR}/dist/cryptlib.zip" -C "<SOURCE_DIR>")
set(INSTALL_CMD cp "<SOURCE_DIR>/cryptlib.h" "<SOURCE_DIR>/libcl.a" ${Cryptlib_BINARY_DIR})
endif()
else()
find_program(ENV_PATH NAMES env REQUIRED)
find_program(MAKE_PATH NAMES make mingw32-make REQUIRED)
if("$ENV{CMAKE_BUILD_PARALLEL_LEVEL}" STREQUAL "")
set(MAKE_FLAGS ${MAKE_FLAGS} -j 32)
......@@ -23,6 +34,7 @@ else()
set(BUILD_CMD ${ENV_PATH} - PATH=$ENV{PATH} ${CROSS_MAKE_ENV} ${MAKE_PATH} ${MAKE_FLAGS})
find_program(UNZIP_PATH unzip REQUIRED)
set(DOWNLOAD_CMD "${UNZIP_PATH}" -oa "${CMAKE_CURRENT_SOURCE_DIR}/dist/cryptlib.zip" -d "<SOURCE_DIR>")
set(INSTALL_CMD cp "<SOURCE_DIR>/cryptlib.h" "<SOURCE_DIR>/libcl.a" ${Cryptlib_BINARY_DIR})
endif()
......@@ -31,12 +43,12 @@ ExternalProject_Add(
DOWNLOAD_COMMAND ${DOWNLOAD_CMD}
UPDATE_COMMAND ""
CONFIGURE_COMMAND ""
PATCH_COMMAND ${SH_PATH} "${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>" ${FIND_PATH} ${PATCH_PATH}
BUILD_IN_SOURCE TRUE
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}
INSTALL_COMMAND ${INSTALL_CMD}
)
add_library(cryptlib STATIC IMPORTED GLOBAL)
......
copy "%1\cryptlib.h" "%2"
copy "%1\binaries32_vs10\cl32.lib" "%2"
copy "%1\binaries32_vs10\cl32.dll" "%2"
copy "%1\binaries32_vs10\cl32.pdb" "%2"
copy "%1\binaries32_vs10\cl32.exp" "%2"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment