@@ -17,6 +17,9 @@ option(ODR_CLANG_TIDY "Run clang-tidy static analysis" OFF)
1717option (WITH_PDF2HTMLEX "Build with pdf2htmlEX" ON )
1818option (WITH_WVWARE "Build with wvWare" ON )
1919option (WITH_LIBMAGIC "Build with libmagic" ON )
20+ option (ODR_BUNDLE_ASSETS "Bundle assets during build and install" ON )
21+
22+ include (GNUInstallDirs )
2023
2124# TODO defining global compiler flags seems to be bad practice with conan
2225# TODO consider using conan profiles
@@ -54,10 +57,6 @@ FetchContent_Declare(odr.js
5457)
5558FetchContent_MakeAvailable (odr.js)
5659
57- set (ODR_DATA_PATH "${odr.js_SOURCE_DIR } " )
58-
59- configure_file ("src/odr/internal/project_info.cpp.in" "src/odr/internal/project_info.cpp" )
60-
6160set (PRE_CONFIGURE_FILE "src/odr/internal/git_info.cpp.in" )
6261set (POST_CONFIGURE_FILE "${CMAKE_CURRENT_BINARY_DIR } /src/odr/internal/git_info.cpp" )
6362if (EXISTS "${PROJECT_SOURCE_DIR } /.git" )
@@ -213,6 +212,10 @@ target_link_libraries(odr
213212 argon2::argon2
214213)
215214
215+ set (ODR_BUILD_ODR_DATA_PATH "${CMAKE_CURRENT_BINARY_DIR } /data" )
216+ file (COPY "${odr.js_SOURCE_DIR } /" DESTINATION "${ODR_BUILD_ODR_DATA_PATH} " )
217+ set (ODR_INSTALL_ODR_DATA_PATH "${CMAKE_INSTALL_DATADIR} " )
218+
216219if (WITH_PDF2HTMLEX)
217220 find_package (pdf2htmlEX REQUIRED )
218221 find_package (poppler REQUIRED )
@@ -230,6 +233,28 @@ if (WITH_PDF2HTMLEX)
230233 PRIVATE
231234 ODR_WITH_PDF2HTMLEX
232235 )
236+
237+ if (ODR_BUNDLE_ASSETS)
238+ set (ODR_BUILD_FONTCONFIG_DATA_PATH "${ODR_BUILD_ODR_DATA_PATH} /fontconfig" )
239+ set (ODR_BUILD_POPPLER_DATA_PATH "${ODR_BUILD_ODR_DATA_PATH} /poppler" )
240+ set (ODR_BUILD_PDF2HTMLEX_DATA_PATH "${ODR_BUILD_ODR_DATA_PATH} /pdf2htmlex" )
241+
242+ file (COPY "${FONTCONFIG_DATA_PATH} /" DESTINATION "${ODR_BUILD_FONTCONFIG_DATA_PATH} " )
243+ file (COPY "${POPPLER_DATA_PATH} /" DESTINATION "${ODR_BUILD_POPPLER_DATA_PATH} " )
244+ file (COPY "${PDF2HTMLEX_DATA_PATH} /" DESTINATION "${ODR_BUILD_PDF2HTMLEX_DATA_PATH} " )
245+
246+ set (ODR_INSTALL_FONTCONFIG_DATA_PATH "${ODR_INSTALL_ODR_DATA_PATH} /fontconfig" )
247+ set (ODR_INSTALL_POPPLER_DATA_PATH "${ODR_INSTALL_ODR_DATA_PATH} /poppler" )
248+ set (ODR_INSTALL_PDF2HTMLEX_DATA_PATH "${ODR_INSTALL_ODR_DATA_PATH} /pdf2htmlex" )
249+ else ()
250+ set (ODR_BUILD_FONTCONFIG_DATA_PATH "${FONTCONFIG_DATA_PATH} " )
251+ set (ODR_BUILD_POPPLER_DATA_PATH "${POPPLER_DATA_PATH} " )
252+ set (ODR_BUILD_PDF2HTMLEX_DATA_PATH "${PDF2HTMLEX_DATA_PATH} " )
253+
254+ set (ODR_INSTALL_FONTCONFIG_DATA_PATH "${FONTCONFIG_DATA_PATH} " )
255+ set (ODR_INSTALL_POPPLER_DATA_PATH "${POPPLER_DATA_PATH} " )
256+ set (ODR_INSTALL_PDF2HTMLEX_DATA_PATH "${PDF2HTMLEX_DATA_PATH} " )
257+ endif ()
233258endif ()
234259if (WITH_WVWARE)
235260 find_package (wvware REQUIRED )
@@ -261,8 +286,22 @@ if (WITH_LIBMAGIC)
261286 PRIVATE
262287 ODR_WITH_LIBMAGIC
263288 )
289+
290+ if (ODR_BUNDLE_ASSETS)
291+ set (ODR_BUILD_LIBMAGIC_DATABASE_PATH "${ODR_BUILD_ODR_DATA_PATH} /magic.mgc" )
292+
293+ file (COPY_FILE "${LIBMAGIC_DATABASE_PATH} " "${ODR_BUILD_LIBMAGIC_DATABASE_PATH} " )
294+
295+ set (ODR_INSTALL_LIBMAGIC_DATABASE_PATH "${ODR_INSTALL_ODR_DATA_PATH} /magic.mgc" )
296+ else ()
297+ set (ODR_BUILD_LIBMAGIC_DATABASE_PATH "${LIBMAGIC_DATABASE_PATH} " )
298+
299+ set (ODR_INSTALL_LIBMAGIC_DATABASE_PATH "${LIBMAGIC_DATABASE_PATH} " )
300+ endif ()
264301endif ()
265302
303+ configure_file ("src/odr/internal/project_info.cpp.in" "src/odr/internal/project_info.cpp" )
304+
266305if (EXISTS "${PROJECT_SOURCE_DIR } /.git" )
267306 add_dependencies (odr check_git )
268307endif ()
@@ -279,8 +318,6 @@ if (ODR_CLANG_TIDY)
279318 add_subdirectory ("static_analysis/clang-tidy" )
280319endif ()
281320
282- include (GNUInstallDirs )
283-
284321install (
285322 DIRECTORY src/ "${CMAKE_CURRENT_BINARY_DIR } /src/"
286323 DESTINATION "${CMAKE_INSTALL_INCLUDEDIR} "
@@ -294,6 +331,6 @@ install(
294331 ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR} "
295332)
296333install (
297- DIRECTORY "${ODR_DATA_PATH } /"
298- DESTINATION "${CMAKE_INSTALL_DATADIR } "
334+ DIRECTORY "${ODR_BUILD_ODR_DATA_PATH } /"
335+ DESTINATION "${ODR_INSTALL_ODR_DATA_PATH } "
299336)
0 commit comments