comparison Resources/CMake/OpenSslConfiguration.cmake @ 2715:73bc0c32547c jobs

fix embedding openssl within a DLL
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 09 Jul 2018 13:02:56 +0200
parents 28dc5bb9a7e6
children 2a4ac74da1ed
comparison
equal deleted inserted replaced
2714:28dc5bb9a7e6 2715:73bc0c32547c
93 ${OPENSSL_SOURCES_DIR}/ssl/ssl2.h 93 ${OPENSSL_SOURCES_DIR}/ssl/ssl2.h
94 ${OPENSSL_SOURCES_DIR}/ssl/ssl23.h 94 ${OPENSSL_SOURCES_DIR}/ssl/ssl23.h
95 ${OPENSSL_SOURCES_DIR}/ssl/ssl3.h 95 ${OPENSSL_SOURCES_DIR}/ssl/ssl3.h
96 ${OPENSSL_SOURCES_DIR}/ssl/tls1.h 96 ${OPENSSL_SOURCES_DIR}/ssl/tls1.h
97 ) 97 )
98 file(COPY ${header} DESTINATION ${OPENSSL_SOURCES_DIR}/include/openssl) 98 file(COPY ${header} DESTINATION ${OPENSSL_SOURCES_DIR}/include/openssl)
99 endforeach() 99 endforeach()
100
101 file(RENAME
102 ${OPENSSL_SOURCES_DIR}/include/openssl/e_os2.h
103 ${OPENSSL_SOURCES_DIR}/include/openssl/e_os2_source.h)
104
105 # The following patch of "e_os2.h" prevents from building OpenSSL
106 # as a DLL under Windows. Otherwise, symbols have inconsistent
107 # linkage if ${OPENSSL_SOURCES} is used to create a DLL (notably
108 # if building an Orthanc plugin such as MySQL).
109 file(WRITE ${OPENSSL_SOURCES_DIR}/include/openssl/e_os2.h "
110 #include \"e_os2_source.h\"
111 #if defined(_WIN32)
112 # undef OPENSSL_EXPORT
113 # undef OPENSSL_IMPORT
114 # undef OPENSSL_EXTERN
115 # undef OPENSSL_GLOBAL
116 # define OPENSSL_EXPORT
117 # define OPENSSL_IMPORT
118 # define OPENSSL_EXTERN extern
119 # define OPENSSL_GLOBAL
120 #endif
121 ")
100 endif() 122 endif()
101 123
102 add_definitions( 124 add_definitions(
103 -DOPENSSL_THREADS 125 -DOPENSSL_THREADS
104 -DOPENSSL_IA32_SSE2 126 -DOPENSSL_IA32_SSE2