Skip to content

Commit 62b4d23

Browse files
authored
Allow VMime to be added as a CMake subproject (#330)
1 parent 12c08ab commit 62b4d23

File tree

2 files changed

+23
-21
lines changed

2 files changed

+23
-21
lines changed

CMakeLists.txt

Lines changed: 22 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -130,9 +130,9 @@ FILE(
130130
)
131131

132132
INCLUDE_DIRECTORIES(
133-
${CMAKE_SOURCE_DIR} # for "contrib/"
134-
${CMAKE_SOURCE_DIR}/src # for "vmime/
135-
${CMAKE_BINARY_DIR}/src # for "config.hpp" and other generated sources
133+
${CMAKE_CURRENT_SOURCE_DIR} # for "contrib/"
134+
${CMAKE_CURRENT_SOURCE_DIR}/src # for "vmime/
135+
${CMAKE_CURRENT_BINARY_DIR}/src # for "config.hpp" and other generated sources
136136
)
137137

138138
INCLUDE(GenerateExportHeader)
@@ -156,17 +156,18 @@ IF(VMIME_BUILD_SHARED_LIBRARY)
156156

157157
TARGET_INCLUDE_DIRECTORIES(${VMIME_LIBRARY_NAME} PUBLIC
158158
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
159+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>
159160
$<INSTALL_INTERFACE:include>
160161
)
161162

162163
GENERATE_EXPORT_HEADER(
163164
${VMIME_LIBRARY_NAME}
164165
BASE_NAME VMIME
165166
STATIC_DEFINE VMIME_STATIC
166-
EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/src/vmime/export-shared.hpp
167+
EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/src/vmime/export-shared.hpp
167168
)
168169

169-
LIST(APPEND VMIME_LIBRARY_GENERATED_INCLUDE_FILES "${CMAKE_BINARY_DIR}/src/vmime/export-shared.hpp")
170+
LIST(APPEND VMIME_LIBRARY_GENERATED_INCLUDE_FILES "${CMAKE_CURRENT_BINARY_DIR}/src/vmime/export-shared.hpp")
170171

171172
SET_TARGET_PROPERTIES(
172173
${VMIME_LIBRARY_NAME}
@@ -199,17 +200,18 @@ IF(VMIME_BUILD_STATIC_LIBRARY)
199200

200201
TARGET_INCLUDE_DIRECTORIES(${VMIME_LIBRARY_NAME}-static PUBLIC
201202
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
203+
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/src>
202204
$<INSTALL_INTERFACE:include>
203205
)
204206

205207
GENERATE_EXPORT_HEADER(
206208
${VMIME_LIBRARY_NAME}-static
207209
BASE_NAME VMIME
208210
STATIC_DEFINE VMIME_STATIC
209-
EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/src/vmime/export-static.hpp
211+
EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/src/vmime/export-static.hpp
210212
)
211213

212-
LIST(APPEND VMIME_LIBRARY_GENERATED_INCLUDE_FILES "${CMAKE_BINARY_DIR}/src/vmime/export-static.hpp")
214+
LIST(APPEND VMIME_LIBRARY_GENERATED_INCLUDE_FILES "${CMAKE_CURRENT_BINARY_DIR}/src/vmime/export-static.hpp")
213215

214216
SET_TARGET_PROPERTIES(
215217
${VMIME_LIBRARY_NAME}-static
@@ -343,10 +345,10 @@ SET(CPACK_PACKAGE_VERSION "${VMIME_PACKAGE_VERSION}")
343345
IF(APPLE)
344346
# CPack/PackageManager won't allow file without recognized extension
345347
# to be used as license file.
346-
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/COPYING" "${CMAKE_BINARY_DIR}/COPYING.txt" COPYONLY)
347-
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_BINARY_DIR}/COPYING.txt")
348-
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/README" "${CMAKE_BINARY_DIR}/README.txt" COPYONLY)
349-
SET(CPACK_RESOURCE_FILE_README "${CMAKE_BINARY_DIR}/README.txt")
348+
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/COPYING" "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt" COPYONLY)
349+
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/COPYING.txt")
350+
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/README" "${CMAKE_CURRENT_BINARY_DIR}/README.txt" COPYONLY)
351+
SET(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_BINARY_DIR}/README.txt")
350352
ELSE()
351353
SET(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/COPYING")
352354
SET(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README")
@@ -382,7 +384,7 @@ SET(ARCHIVE_NAME ${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION})
382384
ADD_CUSTOM_TARGET(
383385
dist
384386
COMMAND git archive --prefix=${ARCHIVE_NAME}/ HEAD
385-
| bzip2 > ${CMAKE_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
387+
| bzip2 > ${CMAKE_CURRENT_BINARY_DIR}/${ARCHIVE_NAME}.tar.bz2
386388
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
387389
)
388390

@@ -951,13 +953,13 @@ IF(VMIME_BUILD_DOCUMENTATION)
951953
FIND_PACKAGE(Doxygen)
952954

953955
IF(DOXYGEN_FOUND)
954-
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_BINARY_DIR}/Doxyfile @ONLY)
956+
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
955957

956958
# Make a target so that documentation can be generated by running "make doc"
957959
ADD_CUSTOM_TARGET(
958960
doc
959-
${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile
960-
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
961+
${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
962+
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
961963
COMMENT "Generating API documentation with Doxygen" VERBATIM
962964
)
963965
ENDIF(DOXYGEN_FOUND)
@@ -1004,11 +1006,11 @@ ENDIF()
10041006

10051007

10061008
# Set our configure file
1007-
CONFIGURE_FILE(cmake/config.hpp.cmake ${CMAKE_BINARY_DIR}/src/vmime/config.hpp)
1008-
LIST(APPEND VMIME_LIBRARY_GENERATED_INCLUDE_FILES ${CMAKE_BINARY_DIR}/src/vmime/config.hpp)
1009+
CONFIGURE_FILE(cmake/config.hpp.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/vmime/config.hpp)
1010+
LIST(APPEND VMIME_LIBRARY_GENERATED_INCLUDE_FILES ${CMAKE_CURRENT_BINARY_DIR}/src/vmime/config.hpp)
10091011

10101012
# PkgConfig post-configuration
1011-
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/vmime.pc.in ${CMAKE_BINARY_DIR}/vmime.pc @ONLY)
1013+
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/vmime.pc.in ${CMAKE_CURRENT_BINARY_DIR}/vmime.pc @ONLY)
10121014

10131015
INCLUDE(CPack)
10141016

@@ -1049,9 +1051,9 @@ IF(VMIME_INSTALL)
10491051

10501052
# Installation of header files
10511053
INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_INCLUDE_FILES headers "${CMAKE_CURRENT_SOURCE_DIR}/src/")
1052-
INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_GENERATED_INCLUDE_FILES headers "${CMAKE_BINARY_DIR}/src")
1054+
INSTALL_HEADERS_WITH_DIRECTORY(VMIME_LIBRARY_GENERATED_INCLUDE_FILES headers "${CMAKE_CURRENT_BINARY_DIR}/src")
10531055

1054-
INSTALL(FILES ${CMAKE_BINARY_DIR}/vmime.pc DESTINATION "${VMIME_INSTALL_LIBDIR}/pkgconfig" COMPONENT headers)
1056+
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/vmime.pc DESTINATION "${VMIME_INSTALL_LIBDIR}/pkgconfig" COMPONENT headers)
10551057

10561058
MESSAGE("")
10571059
MESSAGE("VMime will install to the following directories:")

src/vmime/vmime.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727

2828
// Configuration
29-
#include "config.hpp"
29+
#include "vmime/config.hpp"
3030

3131
// Base definitions
3232
#include "base.hpp"

0 commit comments

Comments
 (0)