diff options
author | Jay Berkenbilt <ejb@ql.org> | 2022-03-05 14:24:51 +0100 |
---|---|---|
committer | Jay Berkenbilt <jberkenbilt@users.noreply.github.com> | 2022-03-19 00:53:18 +0100 |
commit | b8aff90997116a84350018f88f1eabdaa368d11b (patch) | |
tree | 5ee781b03d3ffa81bfdd813e91f6324a75b266e6 /qpdf/CMakeLists.txt | |
parent | 105862da3ea72c6763c26038d2e02cf243eb0798 (diff) | |
download | qpdf-b8aff90997116a84350018f88f1eabdaa368d11b.tar.zst |
Add cmake configuration files
Diffstat (limited to 'qpdf/CMakeLists.txt')
-rw-r--r-- | qpdf/CMakeLists.txt | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/qpdf/CMakeLists.txt b/qpdf/CMakeLists.txt new file mode 100644 index 00000000..300174ce --- /dev/null +++ b/qpdf/CMakeLists.txt @@ -0,0 +1,78 @@ +set(MAIN_CXX_PROGRAMS + qpdf + fix-qdf + pdf_from_scratch + test_driver + test_large_file + test_parsedoffset + test_pdf_doc_encoding + test_pdf_unicode + test_renumber + test_shell_glob + test_tokenizer + test_unicode_filenames + test_xref) +set(MAIN_C_PROGRAMS + qpdf-ctest + qpdfjob-ctest) + +foreach(PROG ${MAIN_CXX_PROGRAMS}) + add_executable(${PROG} ${PROG}.cc) + target_link_libraries(${PROG} libqpdf) +endforeach() +foreach(PROG ${MAIN_C_PROGRAMS}) + add_executable(${PROG} ${PROG}.c) + target_link_libraries(${PROG} libqpdf) + set_property(TARGET ${PROG} PROPERTY LINKER_LANGUAGE CXX) +endforeach() +target_include_directories(qpdf-ctest PRIVATE ${CMAKE_BINARY_DIR}/libqpdf) + +foreach(B qpdf test_unicode_filenames fix-qdf test_shell_glob) + if(WINDOWS_WMAIN_COMPILE) + target_compile_options(${B} PRIVATE ${WINDOWS_WMAIN_COMPILE}) + endif() + if(WINDOWS_WMAIN_LINK) + target_link_options(${B} PRIVATE ${WINDOWS_WMAIN_LINK}) + endif() +endforeach() + +add_test( + NAME qpdf + COMMAND ${RUN_QTEST} + --top ${qpdf_SOURCE_DIR} + --bin $<TARGET_FILE_DIR:qpdf> + --bin $<TARGET_FILE_DIR:libqpdf> # for Windows to find DLL + --code ${qpdf_SOURCE_DIR}/qpdf + --color ${QTEST_COLOR} + --show-on-failure ${SHOW_FAILED_TEST_OUTPUT} + --tc "${qpdf_SOURCE_DIR}/qpdf/*.cc" + --tc "${qpdf_SOURCE_DIR}/qpdf/*.c" + --tc "${qpdf_SOURCE_DIR}/libqpdf/*.cc") + +install(TARGETS qpdf fix-qdf + TYPE RUNTIME + COMPONENT ${COMPONENT_CLI}) + +if(MINGW) + # For MSVC, including InstallRequiredSystemLibraries in the + # top-level CMakeLists.txt is sufficient. For mingw, we have to copy + # mingw libraries in ourselves. + set(ONE_GNU_DLL extra-dlls/libstdc++-6.dll) + add_custom_command(OUTPUT ${ONE_GNU_DLL} + COMMAND + perl ${qpdf_SOURCE_DIR}/copy_dlls + qpdf.exe + ${CMAKE_BINARY_DIR}/libqpdf + extra-dlls) + add_custom_target(extra_dlls ALL DEPENDS ${ONE_GNU_DLL}) + add_dependencies(extra_dlls qpdf) + if(BUILD_SHARED_LIBS) + set(EXTRA_DLL_COMPONENT ${COMPONENT_LIB}) + else() + set(EXTRA_DLL_COMPONENT ${COMPONENT_CLI}) + endif() + # The trailing / prevents "extra-dlls" from being created in bin. + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/extra-dlls/ + TYPE BIN + COMPONENT ${EXTRA_DLL_COMPONENT}) +endif() |