Я хочу создать openssl и связать с ним свой проект. В моем проекте у меня есть библиотека net, которая использует openssl. Итак, в моем net\CMakeList я добавил
include_directories(
../
+ ../../../ext/openssl/inc32/
)
add_library(net STATIC ${sources})
+ ADD_DEPENDENCIES(net openssl)
В моей папке ext, которая используется для организации всей внешней библиотеки, у меня есть свежий разархивированный исходный код openssl в папке с именем openssl. Затем я отредактировал ext\CmakeList
message(STATUS "Configuring OpenSSL")
set(openssl_dir openssl)
if (CMAKE_CL_64)
include(ExternalProject)
set(OPENSSL_CONFIGURE perl\ Configure\ VC-WIN64A)
set(OPENSSL_MAKE ms\\do_win64a\ &&\ nmake\ -f\ ms\\ntdll.mak)
ExternalProject_Add(openssl
PREFIX openssl
#-- Download Step ----------
SOURCE_DIR ${CMAKE_SOURCE_DIR}/ext/openssl
#--Configure step ----------
CONFIGURE_COMMAND ${OPENSSL_CONFIGURE}
#--Build Step ----------
BUILD_COMMAND ${OPENSSL_MAKE}
BUILD_IN_SOURCE 1
#--install Step ----------
INSTALL_COMMAND ""}
)
endif()
Когда я собирал, компилятор жаловался, что не может найти включаемые файлы, а исходный код openssl вообще не собирался, так как нет ни out32dll, ни inc32.
Мой вопрос: когда ExternalProject_Add фактически создает проект? Если я делаю свою сетевую библиотеку зависимой от openssl, означает ли это, что при сборке сети нужно будет сначала проверить и собрать openssl?
vsvarsall.bat
. - person   schedule 02.07.2014