<fix>(project): support build on Windows.
1. Optimize the introduction of vmime header files. 2. Disable ExternalProject when using Windows platform.
This commit is contained in:
parent
390c7a236e
commit
c4d972cd57
4
.gitmodules
vendored
4
.gitmodules
vendored
@ -9,7 +9,7 @@
|
||||
url = https://github.com/saturneric/libgpg-error
|
||||
[submodule "third_party/vmime"]
|
||||
path = third_party/vmime
|
||||
url = https://github.com/saturneric/vmime
|
||||
url = git://git.codesdream.com//third_party/vmime.git
|
||||
[submodule "third_party/json"]
|
||||
path = third_party/json
|
||||
url = https://github.com/saturneric/json
|
||||
@ -21,4 +21,4 @@
|
||||
url = https://github.com/saturneric/Qt-AES
|
||||
[submodule "third_party/smtp-mime"]
|
||||
path = third_party/smtp-mime
|
||||
url = https://github.com/saturneric/SmtpClient-for-Qt
|
||||
url = git://git.codesdream.com//third_party/smtp-mime.git
|
||||
|
@ -234,6 +234,7 @@ IF (MINGW)
|
||||
/mingw64/include
|
||||
)
|
||||
link_directories(
|
||||
${CMAKE_SOURCE_DIR}/lib/mingw
|
||||
/mingw64/lib
|
||||
)
|
||||
endif ()
|
||||
|
@ -23,7 +23,6 @@
|
||||
*/
|
||||
|
||||
#include <boost/date_time.hpp>
|
||||
#include <vmime/vmime.hpp>
|
||||
|
||||
#include "ui/settings/GlobalSettingStation.h"
|
||||
|
||||
|
@ -34,9 +34,12 @@ target_link_libraries(${GPGFRONTEND_UI_LIB_NAME}
|
||||
Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
|
||||
|
||||
# link vmime
|
||||
if (APPLE)
|
||||
if (NOT LINUX)
|
||||
target_link_libraries(${GPGFRONTEND_UI_LIB_NAME}
|
||||
gpgfrontend_vmime ssl crypto)
|
||||
gpgfrontend_vmime ssl crypto intl iconv)
|
||||
if(MINGW)
|
||||
target_link_libraries(${GPGFRONTEND_UI_LIB_NAME} ws2_32)
|
||||
endif()
|
||||
else ()
|
||||
target_link_libraries(${GPGFRONTEND_UI_LIB_NAME}
|
||||
gpgfrontend_vmime anl ssl crypto)
|
||||
|
@ -25,6 +25,8 @@
|
||||
#ifndef GPGFRONTEND_GPGFRONTENDUI_H
|
||||
#define GPGFRONTEND_GPGFRONTENDUI_H
|
||||
|
||||
#include <optional>
|
||||
|
||||
#include <QtCore>
|
||||
#include <QtNetwork>
|
||||
#include <QtPrintSupport>
|
||||
@ -44,6 +46,10 @@
|
||||
#include <SmtpMime>
|
||||
#endif
|
||||
|
||||
#define VMIME_STATIC
|
||||
#undef VMIME_HAVE_MLANG
|
||||
#include <vmime/vmime.hpp>
|
||||
|
||||
/**
|
||||
* Resources File(s) Path Vars
|
||||
*/
|
||||
|
163
third_party/CMakeLists.txt
vendored
163
third_party/CMakeLists.txt
vendored
@ -16,14 +16,17 @@ add_subdirectory(qt-aes)
|
||||
set(VMIME_HAVE_MESSAGING_PROTO_SENDMAIL OFF CACHE BOOL "" FORCE)
|
||||
set(VMIME_HAVE_SASL_SUPPORT OFF CACHE BOOL "" FORCE)
|
||||
set(VMIME_BUILD_STATIC_LIBRARY ON CACHE BOOL "" FORCE)
|
||||
set(VMIME_BUILD_SHARED_LIBRARY OFF CACHE BOOL "" FORCE)
|
||||
set(VMIME_CHARSETCONV_LIB "iconv" CACHE STRING "" FORCE)
|
||||
set(VMIME_TLS_SUPPORT_LIB "openssl" CACHE STRING "" FORCE)
|
||||
|
||||
set(VMIME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vmime)
|
||||
set(VMIME_BIN ${CMAKE_CURRENT_BINARY_DIR}/vmime)
|
||||
set(VMIME_BIN_STATIC_LIB ${VMIME_BIN}/build/lib/libvmime.a)
|
||||
|
||||
set(VMIME_INCLUDES ${VMIME_DIR}/src ${CMAKE_BINARY_DIR}/src/vmime/ ${CMAKE_BINARY_DIR}/src/)
|
||||
|
||||
set(VMIME_BIN_STATIC_LIB ${VMIME_BIN}/build/lib/libvmime.a)
|
||||
|
||||
add_subdirectory(vmime)
|
||||
|
||||
add_library(gpgfrontend_vmime STATIC IMPORTED GLOBAL)
|
||||
@ -37,97 +40,123 @@ include(ExternalProject)
|
||||
|
||||
# libgpg-error
|
||||
|
||||
set(GPG_ERROR_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libgpg-error)
|
||||
set(GPG_ERROR_BIN ${CMAKE_CURRENT_BINARY_DIR}/libgpg-error)
|
||||
set(GPG_ERROR_STATIC_LIB ${GPG_ERROR_BIN}/lib/libgpg-error.a)
|
||||
set(GPG_ERROR_INCLUDES ${GPG_ERROR_BIN}/include)
|
||||
set(GPG_ERROR_LIBS ${GPG_ERROR_BIN}/lib)
|
||||
file(MAKE_DIRECTORY ${GPG_ERROR_INCLUDES})
|
||||
|
||||
message(STATUS "GPG_ERROR_INCLUDES ${GPG_ERROR_INCLUDES}")
|
||||
if (NOT MINGW)
|
||||
set(GPG_ERROR_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libgpg-error)
|
||||
set(GPG_ERROR_BIN ${CMAKE_CURRENT_BINARY_DIR}/libgpg-error)
|
||||
set(GPG_ERROR_STATIC_LIB ${GPG_ERROR_BIN}/lib/libgpg-error.a)
|
||||
set(GPG_ERROR_INCLUDES ${GPG_ERROR_BIN}/include)
|
||||
set(GPG_ERROR_LIBS ${GPG_ERROR_BIN}/lib)
|
||||
file(MAKE_DIRECTORY ${GPG_ERROR_INCLUDES})
|
||||
else ()
|
||||
find_library(GPG_ERROR_STATIC_LIB libgpg-error.a)
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(libgpg-error
|
||||
PREFIX ${GPG_ERROR_BIN}
|
||||
SOURCE_DIR ${GPG_ERROR_DIR}
|
||||
CONFIGURE_COMMAND ${GPG_ERROR_DIR}/configure --enable-maintainer-mode --prefix=${GPG_ERROR_BIN} --enable-static=yes
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
BUILD_BYPRODUCTS ${GPG_ERROR_STATIC_LIB})
|
||||
if (NOT MINGW)
|
||||
|
||||
ExternalProject_Add_Step(libgpg-error autogen
|
||||
WORKING_DIRECTORY ${GPG_ERROR_DIR}
|
||||
COMMAND ${GPG_ERROR_DIR}/autogen.sh
|
||||
DEPENDERS configure
|
||||
)
|
||||
ExternalProject_Add(libgpg-error
|
||||
PREFIX ${GPG_ERROR_BIN}
|
||||
SOURCE_DIR ${GPG_ERROR_DIR}
|
||||
CONFIGURE_COMMAND ${GPG_ERROR_DIR}/configure --enable-maintainer-mode --prefix=${GPG_ERROR_BIN} --enable-static=yes
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
BUILD_BYPRODUCTS ${GPG_ERROR_STATIC_LIB})
|
||||
|
||||
ExternalProject_Add_Step(libgpg-error autogen
|
||||
WORKING_DIRECTORY ${GPG_ERROR_DIR}
|
||||
COMMAND ${GPG_ERROR_DIR}/autogen.sh
|
||||
DEPENDERS configure)
|
||||
|
||||
endif ()
|
||||
|
||||
add_library(gpg-error STATIC IMPORTED GLOBAL)
|
||||
add_dependencies(gpg-error libgpg-error)
|
||||
if (NOT MINGW)
|
||||
add_dependencies(gpg-error libgpg-error)
|
||||
set_target_properties(gpg-error PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GPG_ERROR_INCLUDES})
|
||||
endif ()
|
||||
set_target_properties(gpg-error PROPERTIES IMPORTED_LOCATION ${GPG_ERROR_STATIC_LIB})
|
||||
set_target_properties(gpg-error PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GPG_ERROR_INCLUDES})
|
||||
|
||||
# libassuan
|
||||
|
||||
set(ASSUAN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libassuan)
|
||||
set(ASSUAN_BIN ${CMAKE_CURRENT_BINARY_DIR}/libassuan)
|
||||
set(ASSUAN_STATIC_LIB ${ASSUAN_BIN}/lib/libassuan.a)
|
||||
set(ASSUAN_INCLUDES ${ASSUAN_BIN}/include)
|
||||
set(ASSUAN_LIBS ${ASSUAN_BIN}/lib)
|
||||
file(MAKE_DIRECTORY ${ASSUAN_INCLUDES})
|
||||
if (NOT MINGW)
|
||||
set(ASSUAN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libassuan)
|
||||
set(ASSUAN_BIN ${CMAKE_CURRENT_BINARY_DIR}/libassuan)
|
||||
set(ASSUAN_STATIC_LIB ${ASSUAN_BIN}/lib/libassuan.a)
|
||||
set(ASSUAN_INCLUDES ${ASSUAN_BIN}/include)
|
||||
set(ASSUAN_LIBS ${ASSUAN_BIN}/lib)
|
||||
file(MAKE_DIRECTORY ${ASSUAN_INCLUDES})
|
||||
else ()
|
||||
find_library(ASSUAN_STATIC_LIB libassuan.a)
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(libassuan
|
||||
PREFIX ${ASSUAN_BIN}
|
||||
SOURCE_DIR ${ASSUAN_DIR}
|
||||
CONFIGURE_COMMAND ${ASSUAN_DIR}/configure --enable-maintainer-mode --prefix=${ASSUAN_BIN} --enable-static=yes
|
||||
--with-libgpg-error-prefix=${GPG_ERROR_BIN}
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
BUILD_BYPRODUCTS ${ASSUAN_STATIC_LIB})
|
||||
if (NOT MINGW)
|
||||
|
||||
ExternalProject_Add_Step(libassuan autogen
|
||||
WORKING_DIRECTORY ${ASSUAN_DIR}
|
||||
COMMAND ${ASSUAN_DIR}/autogen.sh
|
||||
DEPENDERS configure
|
||||
)
|
||||
ExternalProject_Add(libassuan
|
||||
PREFIX ${ASSUAN_BIN}
|
||||
SOURCE_DIR ${ASSUAN_DIR}
|
||||
CONFIGURE_COMMAND ${ASSUAN_DIR}/configure --enable-maintainer-mode --prefix=${ASSUAN_BIN} --enable-static=yes
|
||||
--with-libgpg-error-prefix=${GPG_ERROR_BIN}
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
BUILD_BYPRODUCTS ${ASSUAN_STATIC_LIB})
|
||||
|
||||
ExternalProject_Add_StepDependencies(libassuan autogen libgpg-error)
|
||||
ExternalProject_Add_Step(libassuan autogen
|
||||
WORKING_DIRECTORY ${ASSUAN_DIR}
|
||||
COMMAND ${ASSUAN_DIR}/autogen.sh
|
||||
DEPENDERS configure)
|
||||
|
||||
ExternalProject_Add_StepDependencies(libassuan autogen libgpg-error)
|
||||
|
||||
endif ()
|
||||
|
||||
add_library(assuan STATIC IMPORTED GLOBAL)
|
||||
add_dependencies(assuan libassuan gpg-error)
|
||||
if (NOT MINGW)
|
||||
add_dependencies(assuan libassuan gpg-error)
|
||||
set_target_properties(assuan PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${ASSUAN_INCLUDES})
|
||||
endif ()
|
||||
set_target_properties(assuan PROPERTIES IMPORTED_LOCATION ${ASSUAN_STATIC_LIB})
|
||||
set_target_properties(assuan PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${ASSUAN_INCLUDES})
|
||||
|
||||
# gpgme
|
||||
|
||||
set(GPGME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gpgme)
|
||||
set(GPGME_BIN ${CMAKE_CURRENT_BINARY_DIR}/gpgme)
|
||||
set(GPGME_STATIC_LIB ${GPGME_BIN}/lib/libgpgme.a)
|
||||
set(GPGME_INCLUDES ${GPGME_BIN}/include)
|
||||
file(MAKE_DIRECTORY ${GPGME_INCLUDES})
|
||||
if (NOT MINGW)
|
||||
set(GPGME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gpgme)
|
||||
set(GPGME_BIN ${CMAKE_CURRENT_BINARY_DIR}/gpgme)
|
||||
set(GPGME_STATIC_LIB ${GPGME_BIN}/lib/libgpgme.a)
|
||||
set(GPGME_INCLUDES ${GPGME_BIN}/include)
|
||||
file(MAKE_DIRECTORY ${GPGME_INCLUDES})
|
||||
else ()
|
||||
find_library(GPGME_STATIC_LIB libgpgme.a)
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(libgpgme
|
||||
PREFIX ${GPGME_BIN}
|
||||
SOURCE_DIR ${GPGME_DIR}
|
||||
CONFIGURE_COMMAND ${GPGME_DIR}/configure --enable-maintainer-mode --prefix=${GPGME_BIN} --enable-shared=no --enable-static=yes --disable-gpg-test --enable-languages=cpp
|
||||
--with-libgpg-error-prefix=${GPG_ERROR_BIN}
|
||||
--with-libassuan-prefix=${ASSUAN_BIN}
|
||||
"LIB=-lassuan -lgpg-error"
|
||||
"LDFLAGS=-L${ASSUAN_LIBS} -L${GPG_ERROR_LIBS} "
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
BUILD_BYPRODUCTS ${GPGME_STATIC_LIB})
|
||||
if (NOT MINGW)
|
||||
|
||||
ExternalProject_Add_Step(libgpgme autogen
|
||||
WORKING_DIRECTORY ${GPGME_DIR}
|
||||
COMMAND ${GPGME_DIR}/autogen.sh
|
||||
DEPENDERS configure
|
||||
)
|
||||
ExternalProject_Add(libgpgme
|
||||
PREFIX ${GPGME_BIN}
|
||||
SOURCE_DIR ${GPGME_DIR}
|
||||
CONFIGURE_COMMAND ${GPGME_DIR}/configure --enable-maintainer-mode --prefix=${GPGME_BIN} --enable-shared=no --enable-static=yes --disable-gpg-test --enable-languages=cpp
|
||||
--with-libgpg-error-prefix=${GPG_ERROR_BIN}
|
||||
--with-libassuan-prefix=${ASSUAN_BIN}
|
||||
"LIB=-lassuan -lgpg-error"
|
||||
"LDFLAGS=-L${ASSUAN_LIBS} -L${GPG_ERROR_LIBS} "
|
||||
BUILD_COMMAND make
|
||||
INSTALL_COMMAND make install
|
||||
BUILD_BYPRODUCTS ${GPGME_STATIC_LIB})
|
||||
|
||||
ExternalProject_Add_StepDependencies(libgpgme autogen libassuan libgpg-error)
|
||||
ExternalProject_Add_Step(libgpgme autogen
|
||||
WORKING_DIRECTORY ${GPGME_DIR}
|
||||
COMMAND ${GPGME_DIR}/autogen.sh
|
||||
DEPENDERS configure)
|
||||
|
||||
ExternalProject_Add_StepDependencies(libgpgme autogen libassuan libgpg-error)
|
||||
|
||||
endif ()
|
||||
|
||||
add_library(gpgme STATIC IMPORTED GLOBAL)
|
||||
if (NOT MINGW)
|
||||
add_dependencies(gpgme libgpgme assuan gpg-error)
|
||||
set_target_properties(gpgme PROPERTIES IMPORTED_LOCATION ${GPGME_STATIC_LIB})
|
||||
set_target_properties(gpgme PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GPGME_INCLUDES})
|
||||
endif()
|
||||
set_target_properties(gpgme PROPERTIES IMPORTED_LOCATION ${GPGME_STATIC_LIB})
|
||||
|
||||
if (SMTP_SUPPORT)
|
||||
message(STATUS "Build SMTP Support")
|
||||
|
2
third_party/smtp-mime
vendored
2
third_party/smtp-mime
vendored
@ -1 +1 @@
|
||||
Subproject commit 3fa4a0fe5797070339422cf18b5e9ed8dcb91f9c
|
||||
Subproject commit 39d6f35ca78327ed2c109e30d630e2ea22363cd6
|
2
third_party/vmime
vendored
2
third_party/vmime
vendored
@ -1 +1 @@
|
||||
Subproject commit 23ab2a6a3c927c99bfc1a0bedd94e283c05ca59d
|
||||
Subproject commit 0c9dc59b6ff4e612d97cc2103ff948c5cbab0a7c
|
Loading…
Reference in New Issue
Block a user