<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
|
url = https://github.com/saturneric/libgpg-error
|
||||||
[submodule "third_party/vmime"]
|
[submodule "third_party/vmime"]
|
||||||
path = 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"]
|
[submodule "third_party/json"]
|
||||||
path = third_party/json
|
path = third_party/json
|
||||||
url = https://github.com/saturneric/json
|
url = https://github.com/saturneric/json
|
||||||
@ -21,4 +21,4 @@
|
|||||||
url = https://github.com/saturneric/Qt-AES
|
url = https://github.com/saturneric/Qt-AES
|
||||||
[submodule "third_party/smtp-mime"]
|
[submodule "third_party/smtp-mime"]
|
||||||
path = 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
|
/mingw64/include
|
||||||
)
|
)
|
||||||
link_directories(
|
link_directories(
|
||||||
|
${CMAKE_SOURCE_DIR}/lib/mingw
|
||||||
/mingw64/lib
|
/mingw64/lib
|
||||||
)
|
)
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -23,7 +23,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <boost/date_time.hpp>
|
#include <boost/date_time.hpp>
|
||||||
#include <vmime/vmime.hpp>
|
|
||||||
|
|
||||||
#include "ui/settings/GlobalSettingStation.h"
|
#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)
|
Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
|
||||||
|
|
||||||
# link vmime
|
# link vmime
|
||||||
if (APPLE)
|
if (NOT LINUX)
|
||||||
target_link_libraries(${GPGFRONTEND_UI_LIB_NAME}
|
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 ()
|
else ()
|
||||||
target_link_libraries(${GPGFRONTEND_UI_LIB_NAME}
|
target_link_libraries(${GPGFRONTEND_UI_LIB_NAME}
|
||||||
gpgfrontend_vmime anl ssl crypto)
|
gpgfrontend_vmime anl ssl crypto)
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
#ifndef GPGFRONTEND_GPGFRONTENDUI_H
|
#ifndef GPGFRONTEND_GPGFRONTENDUI_H
|
||||||
#define GPGFRONTEND_GPGFRONTENDUI_H
|
#define GPGFRONTEND_GPGFRONTENDUI_H
|
||||||
|
|
||||||
|
#include <optional>
|
||||||
|
|
||||||
#include <QtCore>
|
#include <QtCore>
|
||||||
#include <QtNetwork>
|
#include <QtNetwork>
|
||||||
#include <QtPrintSupport>
|
#include <QtPrintSupport>
|
||||||
@ -44,6 +46,10 @@
|
|||||||
#include <SmtpMime>
|
#include <SmtpMime>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define VMIME_STATIC
|
||||||
|
#undef VMIME_HAVE_MLANG
|
||||||
|
#include <vmime/vmime.hpp>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Resources File(s) Path Vars
|
* Resources File(s) Path Vars
|
||||||
*/
|
*/
|
||||||
|
51
third_party/CMakeLists.txt
vendored
51
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_MESSAGING_PROTO_SENDMAIL OFF CACHE BOOL "" FORCE)
|
||||||
set(VMIME_HAVE_SASL_SUPPORT 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_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_CHARSETCONV_LIB "iconv" CACHE STRING "" FORCE)
|
||||||
set(VMIME_TLS_SUPPORT_LIB "openssl" CACHE STRING "" FORCE)
|
set(VMIME_TLS_SUPPORT_LIB "openssl" CACHE STRING "" FORCE)
|
||||||
|
|
||||||
set(VMIME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vmime)
|
set(VMIME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/vmime)
|
||||||
set(VMIME_BIN ${CMAKE_CURRENT_BINARY_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_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_subdirectory(vmime)
|
||||||
|
|
||||||
add_library(gpgfrontend_vmime STATIC IMPORTED GLOBAL)
|
add_library(gpgfrontend_vmime STATIC IMPORTED GLOBAL)
|
||||||
@ -37,14 +40,19 @@ include(ExternalProject)
|
|||||||
|
|
||||||
# libgpg-error
|
# libgpg-error
|
||||||
|
|
||||||
|
|
||||||
|
if (NOT MINGW)
|
||||||
set(GPG_ERROR_DIR ${CMAKE_CURRENT_SOURCE_DIR}/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_BIN ${CMAKE_CURRENT_BINARY_DIR}/libgpg-error)
|
||||||
set(GPG_ERROR_STATIC_LIB ${GPG_ERROR_BIN}/lib/libgpg-error.a)
|
set(GPG_ERROR_STATIC_LIB ${GPG_ERROR_BIN}/lib/libgpg-error.a)
|
||||||
set(GPG_ERROR_INCLUDES ${GPG_ERROR_BIN}/include)
|
set(GPG_ERROR_INCLUDES ${GPG_ERROR_BIN}/include)
|
||||||
set(GPG_ERROR_LIBS ${GPG_ERROR_BIN}/lib)
|
set(GPG_ERROR_LIBS ${GPG_ERROR_BIN}/lib)
|
||||||
file(MAKE_DIRECTORY ${GPG_ERROR_INCLUDES})
|
file(MAKE_DIRECTORY ${GPG_ERROR_INCLUDES})
|
||||||
|
else ()
|
||||||
|
find_library(GPG_ERROR_STATIC_LIB libgpg-error.a)
|
||||||
|
endif ()
|
||||||
|
|
||||||
message(STATUS "GPG_ERROR_INCLUDES ${GPG_ERROR_INCLUDES}")
|
if (NOT MINGW)
|
||||||
|
|
||||||
ExternalProject_Add(libgpg-error
|
ExternalProject_Add(libgpg-error
|
||||||
PREFIX ${GPG_ERROR_BIN}
|
PREFIX ${GPG_ERROR_BIN}
|
||||||
@ -57,22 +65,31 @@ ExternalProject_Add(libgpg-error
|
|||||||
ExternalProject_Add_Step(libgpg-error autogen
|
ExternalProject_Add_Step(libgpg-error autogen
|
||||||
WORKING_DIRECTORY ${GPG_ERROR_DIR}
|
WORKING_DIRECTORY ${GPG_ERROR_DIR}
|
||||||
COMMAND ${GPG_ERROR_DIR}/autogen.sh
|
COMMAND ${GPG_ERROR_DIR}/autogen.sh
|
||||||
DEPENDERS configure
|
DEPENDERS configure)
|
||||||
)
|
|
||||||
|
endif ()
|
||||||
|
|
||||||
add_library(gpg-error STATIC IMPORTED GLOBAL)
|
add_library(gpg-error STATIC IMPORTED GLOBAL)
|
||||||
|
if (NOT MINGW)
|
||||||
add_dependencies(gpg-error libgpg-error)
|
add_dependencies(gpg-error libgpg-error)
|
||||||
set_target_properties(gpg-error PROPERTIES IMPORTED_LOCATION ${GPG_ERROR_STATIC_LIB})
|
|
||||||
set_target_properties(gpg-error PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GPG_ERROR_INCLUDES})
|
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})
|
||||||
|
|
||||||
# libassuan
|
# libassuan
|
||||||
|
|
||||||
|
if (NOT MINGW)
|
||||||
set(ASSUAN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libassuan)
|
set(ASSUAN_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libassuan)
|
||||||
set(ASSUAN_BIN ${CMAKE_CURRENT_BINARY_DIR}/libassuan)
|
set(ASSUAN_BIN ${CMAKE_CURRENT_BINARY_DIR}/libassuan)
|
||||||
set(ASSUAN_STATIC_LIB ${ASSUAN_BIN}/lib/libassuan.a)
|
set(ASSUAN_STATIC_LIB ${ASSUAN_BIN}/lib/libassuan.a)
|
||||||
set(ASSUAN_INCLUDES ${ASSUAN_BIN}/include)
|
set(ASSUAN_INCLUDES ${ASSUAN_BIN}/include)
|
||||||
set(ASSUAN_LIBS ${ASSUAN_BIN}/lib)
|
set(ASSUAN_LIBS ${ASSUAN_BIN}/lib)
|
||||||
file(MAKE_DIRECTORY ${ASSUAN_INCLUDES})
|
file(MAKE_DIRECTORY ${ASSUAN_INCLUDES})
|
||||||
|
else ()
|
||||||
|
find_library(ASSUAN_STATIC_LIB libassuan.a)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT MINGW)
|
||||||
|
|
||||||
ExternalProject_Add(libassuan
|
ExternalProject_Add(libassuan
|
||||||
PREFIX ${ASSUAN_BIN}
|
PREFIX ${ASSUAN_BIN}
|
||||||
@ -86,23 +103,32 @@ ExternalProject_Add(libassuan
|
|||||||
ExternalProject_Add_Step(libassuan autogen
|
ExternalProject_Add_Step(libassuan autogen
|
||||||
WORKING_DIRECTORY ${ASSUAN_DIR}
|
WORKING_DIRECTORY ${ASSUAN_DIR}
|
||||||
COMMAND ${ASSUAN_DIR}/autogen.sh
|
COMMAND ${ASSUAN_DIR}/autogen.sh
|
||||||
DEPENDERS configure
|
DEPENDERS configure)
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add_StepDependencies(libassuan autogen libgpg-error)
|
ExternalProject_Add_StepDependencies(libassuan autogen libgpg-error)
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
|
||||||
add_library(assuan STATIC IMPORTED GLOBAL)
|
add_library(assuan STATIC IMPORTED GLOBAL)
|
||||||
|
if (NOT MINGW)
|
||||||
add_dependencies(assuan libassuan gpg-error)
|
add_dependencies(assuan libassuan gpg-error)
|
||||||
set_target_properties(assuan PROPERTIES IMPORTED_LOCATION ${ASSUAN_STATIC_LIB})
|
|
||||||
set_target_properties(assuan PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${ASSUAN_INCLUDES})
|
set_target_properties(assuan PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${ASSUAN_INCLUDES})
|
||||||
|
endif ()
|
||||||
|
set_target_properties(assuan PROPERTIES IMPORTED_LOCATION ${ASSUAN_STATIC_LIB})
|
||||||
|
|
||||||
# gpgme
|
# gpgme
|
||||||
|
|
||||||
|
if (NOT MINGW)
|
||||||
set(GPGME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gpgme)
|
set(GPGME_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gpgme)
|
||||||
set(GPGME_BIN ${CMAKE_CURRENT_BINARY_DIR}/gpgme)
|
set(GPGME_BIN ${CMAKE_CURRENT_BINARY_DIR}/gpgme)
|
||||||
set(GPGME_STATIC_LIB ${GPGME_BIN}/lib/libgpgme.a)
|
set(GPGME_STATIC_LIB ${GPGME_BIN}/lib/libgpgme.a)
|
||||||
set(GPGME_INCLUDES ${GPGME_BIN}/include)
|
set(GPGME_INCLUDES ${GPGME_BIN}/include)
|
||||||
file(MAKE_DIRECTORY ${GPGME_INCLUDES})
|
file(MAKE_DIRECTORY ${GPGME_INCLUDES})
|
||||||
|
else ()
|
||||||
|
find_library(GPGME_STATIC_LIB libgpgme.a)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (NOT MINGW)
|
||||||
|
|
||||||
ExternalProject_Add(libgpgme
|
ExternalProject_Add(libgpgme
|
||||||
PREFIX ${GPGME_BIN}
|
PREFIX ${GPGME_BIN}
|
||||||
@ -119,15 +145,18 @@ ExternalProject_Add(libgpgme
|
|||||||
ExternalProject_Add_Step(libgpgme autogen
|
ExternalProject_Add_Step(libgpgme autogen
|
||||||
WORKING_DIRECTORY ${GPGME_DIR}
|
WORKING_DIRECTORY ${GPGME_DIR}
|
||||||
COMMAND ${GPGME_DIR}/autogen.sh
|
COMMAND ${GPGME_DIR}/autogen.sh
|
||||||
DEPENDERS configure
|
DEPENDERS configure)
|
||||||
)
|
|
||||||
|
|
||||||
ExternalProject_Add_StepDependencies(libgpgme autogen libassuan libgpg-error)
|
ExternalProject_Add_StepDependencies(libgpgme autogen libassuan libgpg-error)
|
||||||
|
|
||||||
|
endif ()
|
||||||
|
|
||||||
add_library(gpgme STATIC IMPORTED GLOBAL)
|
add_library(gpgme STATIC IMPORTED GLOBAL)
|
||||||
|
if (NOT MINGW)
|
||||||
add_dependencies(gpgme libgpgme assuan gpg-error)
|
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})
|
set_target_properties(gpgme PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GPGME_INCLUDES})
|
||||||
|
endif()
|
||||||
|
set_target_properties(gpgme PROPERTIES IMPORTED_LOCATION ${GPGME_STATIC_LIB})
|
||||||
|
|
||||||
if (SMTP_SUPPORT)
|
if (SMTP_SUPPORT)
|
||||||
message(STATUS "Build 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