Hello, Am 28.12.2015 um 18:51 schrieb Albert Astals Cid: > El Friday 25 December 2015, a les 14:23:50, Adam Reichold va escriure: >> Hello, >> >> after a recent upgrade of either CMake or Ninja, building with both the >> Qt4 and Qt5 tests enabled started to fail. This seems to be caused by >> CMake's automoc feature being broken due to the test targets being >> present twice which Ninja does also complain about. >> >> The attached patch tries to: >> * Fix this by making the test target names unique for their Qt4 and Qt5 >> variants. >> * Fix the warning on CMake policy 0022 by making use of the LINK_PRIVATE >> flag. >> * Make it possible to find OpenJPEG using pkg-config as well, i.e. >> prefer a pkg-config manifest if one exits. (This is necessary for >> example to build using CMake and OpenJPEG on Arch Linux.) > > The patch has conflicts in cmake/modules/FindLIBOPENJPEG.cmake:23 can you > rebase it?
I am sorry about that, I thought I branched from the latest master. I did pull and rebased on b3425dd3261679958cd56c0f71995c15d2124433, newly formatted patch attached. > Cheers, > Albert Best regards, Adam.
From 1402835ed05a2ce4e6190473170c8556d10f246b Mon Sep 17 00:00:00 2001 From: Adam Reichold <[email protected]> Date: Fri, 25 Dec 2015 14:10:03 +0100 Subject: [PATCH 1/3] Make target names for Qt4 and Qt5 builds unique so they can be built at the same time using recent CMake and Ninja versions. --- qt4/tests/CMakeLists.txt | 44 +++++++++++++++++++++--------------------- qt5/CMakeLists.txt | 2 ++ qt5/demos/CMakeLists.txt | 2 -- qt5/src/CMakeLists.txt | 2 -- qt5/tests/CMakeLists.txt | 50 +++++++++++++++++++++++------------------------- 5 files changed, 48 insertions(+), 52 deletions(-) diff --git a/qt4/tests/CMakeLists.txt b/qt4/tests/CMakeLists.txt index 4f16f24..bba868f 100644 --- a/qt4/tests/CMakeLists.txt +++ b/qt4/tests/CMakeLists.txt @@ -38,30 +38,30 @@ endmacro(QT4_ADD_QTEST) qt4_add_simpletest(test-poppler-qt4 test-poppler-qt4.cpp) qt4_add_simpletest(test-password-qt4 test-password-qt4.cpp) -qt4_add_simpletest(test-render-to-file test-render-to-file.cpp) -qt4_add_simpletest(poppler-forms poppler-forms.cpp) -qt4_add_simpletest(poppler-fonts poppler-fonts.cpp) -qt4_add_simpletest(poppler_attachments poppler-attachments.cpp) +qt4_add_simpletest(test-render-to-file-qt4 test-render-to-file.cpp) +qt4_add_simpletest(poppler-qt4-forms poppler-forms.cpp) +qt4_add_simpletest(poppler-qt4-fonts poppler-fonts.cpp) +qt4_add_simpletest(poppler-qt4-attachments poppler-attachments.cpp) qt4_add_simpletest(stress-poppler-qt4 stress-poppler-qt4.cpp) -qt4_add_simpletest(stress-poppler-dir stress-poppler-dir.cpp) +qt4_add_simpletest(stress-poppler-dir-qt4 stress-poppler-dir.cpp) qt4_add_simpletest(stress-threads-qt4 stress-threads-qt4.cpp) -qt4_add_simpletest(poppler-texts poppler-texts.cpp) +qt4_add_simpletest(poppler-qt4-texts poppler-texts.cpp) -qt4_add_qtest(check_attachments check_attachments.cpp) -qt4_add_qtest(check_dateConversion check_dateConversion.cpp) -qt4_add_qtest(check_fonts check_fonts.cpp) -qt4_add_qtest(check_links check_links.cpp) -qt4_add_qtest(check_metadata check_metadata.cpp) -qt4_add_qtest(check_optcontent check_optcontent.cpp) -qt4_add_qtest(check_pagelayout check_pagelayout.cpp) -qt4_add_qtest(check_pagemode check_pagemode.cpp) -qt4_add_qtest(check_password check_password.cpp) -qt4_add_qtest(check_permissions check_permissions.cpp) -qt4_add_qtest(check_search check_search.cpp) -qt4_add_qtest(check_actualtext check_actualtext.cpp) -qt4_add_qtest(check_lexer check_lexer.cpp) -qt4_add_qtest(check_pagelabelinfo check_pagelabelinfo.cpp) -qt4_add_qtest(check_goostring check_goostring.cpp) +qt4_add_qtest(check_qt4_attachments check_attachments.cpp) +qt4_add_qtest(check_qt4_dateConversion check_dateConversion.cpp) +qt4_add_qtest(check_qt4_fonts check_fonts.cpp) +qt4_add_qtest(check_qt4_links check_links.cpp) +qt4_add_qtest(check_qt4_metadata check_metadata.cpp) +qt4_add_qtest(check_qt4_optcontent check_optcontent.cpp) +qt4_add_qtest(check_qt4_pagelayout check_pagelayout.cpp) +qt4_add_qtest(check_qt4_pagemode check_pagemode.cpp) +qt4_add_qtest(check_qt4_password check_password.cpp) +qt4_add_qtest(check_qt4_permissions check_permissions.cpp) +qt4_add_qtest(check_qt4_search check_search.cpp) +qt4_add_qtest(check_qt4_actualtext check_actualtext.cpp) +qt4_add_qtest(check_qt4_lexer check_lexer.cpp) +qt4_add_qtest(check_qt4_pagelabelinfo check_pagelabelinfo.cpp) +qt4_add_qtest(check_qt4_goostring check_goostring.cpp) if (NOT WIN32) - qt4_add_qtest(check_strings check_strings.cpp) + qt4_add_qtest(check_qt4_strings check_strings.cpp) endif (NOT WIN32) diff --git a/qt5/CMakeLists.txt b/qt5/CMakeLists.txt index a364abf..6bd7a6b 100644 --- a/qt5/CMakeLists.txt +++ b/qt5/CMakeLists.txt @@ -1,3 +1,5 @@ +set(CMAKE_AUTOMOC ON) + add_subdirectory(src) add_subdirectory(tests) add_subdirectory(demos) diff --git a/qt5/demos/CMakeLists.txt b/qt5/demos/CMakeLists.txt index 6861e1d..060ff16 100644 --- a/qt5/demos/CMakeLists.txt +++ b/qt5/demos/CMakeLists.txt @@ -1,5 +1,3 @@ -set(CMAKE_AUTOMOC ON) - add_definitions(${QT5_DEFINITIONS}) add_definitions(${Qt5Core_DEFINITIONS}) add_definitions(${Qt5Gui_DEFINITIONS}) diff --git a/qt5/src/CMakeLists.txt b/qt5/src/CMakeLists.txt index 1eef04a..091a71f 100644 --- a/qt5/src/CMakeLists.txt +++ b/qt5/src/CMakeLists.txt @@ -1,8 +1,6 @@ add_definitions(${QT5_DEFINITIONS}) add_definitions(${Qt5Core_DEFINITIONS}) -set(CMAKE_AUTOMOC ON) - include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${Qt5Core_INCLUDE_DIRS} diff --git a/qt5/tests/CMakeLists.txt b/qt5/tests/CMakeLists.txt index ae0bd6c..b8f1926 100644 --- a/qt5/tests/CMakeLists.txt +++ b/qt5/tests/CMakeLists.txt @@ -1,5 +1,3 @@ -set(CMAKE_AUTOMOC ON) - add_definitions(${Qt5Core_DEFINITIONS}) add_definitions(-DTESTDATADIR=\"${TESTDATADIR}\") @@ -37,9 +35,9 @@ macro(QT5_ADD_QTEST exe source) ${source} ) poppler_add_unittest(${exe} BUILD_QT5_TESTS ${${test_name}_SOURCES}) - target_link_libraries(${exe} poppler-qt5 ${Qt5Widgets_LIBRARIES} ${Qt5Test_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES}) + target_link_libraries(${exe} poppler-qt5 ${Qt5Widgets_LIBRARIES} ${Qt5Test_LIBRARIES} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES}) if(MSVC) - target_link_libraries(${exe} poppler ${poppler_LIBS}) + target_link_libraries(${exe} poppler ${poppler_LIBS}) endif(MSVC) endif (Qt5Test_FOUND) endmacro(QT5_ADD_QTEST) @@ -47,30 +45,30 @@ endmacro(QT5_ADD_QTEST) qt5_add_simpletest(test-poppler-qt5 test-poppler-qt5.cpp) qt5_add_simpletest(test-password-qt5 test-password-qt5.cpp) -qt5_add_simpletest(test-render-to-file test-render-to-file.cpp) -qt5_add_simpletest(poppler-forms poppler-forms.cpp) -qt5_add_simpletest(poppler-fonts poppler-fonts.cpp) -qt5_add_simpletest(poppler_attachments poppler-attachments.cpp) +qt5_add_simpletest(test-render-to-file-qt5 test-render-to-file.cpp) +qt5_add_simpletest(poppler-qt5-forms poppler-forms.cpp) +qt5_add_simpletest(poppler-qt5-fonts poppler-fonts.cpp) +qt5_add_simpletest(poppler-qt5-attachments poppler-attachments.cpp) qt5_add_simpletest(stress-poppler-qt5 stress-poppler-qt5.cpp) -qt5_add_simpletest(stress-poppler-dir stress-poppler-dir.cpp) +qt5_add_simpletest(stress-poppler-dir-qt5 stress-poppler-dir.cpp) qt5_add_simpletest(stress-threads-qt5 stress-threads-qt5.cpp) -qt5_add_simpletest(poppler-texts poppler-texts.cpp) +qt5_add_simpletest(poppler-qt5-texts poppler-texts.cpp) -qt5_add_qtest(check_attachments check_attachments.cpp) -qt5_add_qtest(check_dateConversion check_dateConversion.cpp) -qt5_add_qtest(check_fonts check_fonts.cpp) -qt5_add_qtest(check_links check_links.cpp) -qt5_add_qtest(check_metadata check_metadata.cpp) -qt5_add_qtest(check_optcontent check_optcontent.cpp) -qt5_add_qtest(check_pagelayout check_pagelayout.cpp) -qt5_add_qtest(check_pagemode check_pagemode.cpp) -qt5_add_qtest(check_password check_password.cpp) -qt5_add_qtest(check_permissions check_permissions.cpp) -qt5_add_qtest(check_search check_search.cpp) -qt5_add_qtest(check_actualtext check_actualtext.cpp) -qt5_add_qtest(check_lexer check_lexer.cpp) -qt5_add_qtest(check_pagelabelinfo check_pagelabelinfo.cpp) -qt5_add_qtest(check_goostring check_goostring.cpp) +qt5_add_qtest(check_qt5_attachments check_attachments.cpp) +qt5_add_qtest(check_qt5_dateConversion check_dateConversion.cpp) +qt5_add_qtest(check_qt5_fonts check_fonts.cpp) +qt5_add_qtest(check_qt5_links check_links.cpp) +qt5_add_qtest(check_qt5_metadata check_metadata.cpp) +qt5_add_qtest(check_qt5_optcontent check_optcontent.cpp) +qt5_add_qtest(check_qt5_pagelayout check_pagelayout.cpp) +qt5_add_qtest(check_qt5_pagemode check_pagemode.cpp) +qt5_add_qtest(check_qt5_password check_password.cpp) +qt5_add_qtest(check_qt5_permissions check_permissions.cpp) +qt5_add_qtest(check_qt5_search check_search.cpp) +qt5_add_qtest(check_qt5_actualtext check_actualtext.cpp) +qt5_add_qtest(check_qt5_lexer check_lexer.cpp) +qt5_add_qtest(check_qt5_pagelabelinfo check_pagelabelinfo.cpp) +qt5_add_qtest(check_qt5_goostring check_goostring.cpp) if (NOT WIN32) - qt5_add_qtest(check_strings check_strings.cpp) + qt5_add_qtest(check_qt5_strings check_strings.cpp) endif (NOT WIN32) -- 2.6.4 From 6994479ac9cfb4d12c310e7e8ebb811dd5779f00 Mon Sep 17 00:00:00 2001 From: Adam Reichold <[email protected]> Date: Fri, 25 Dec 2015 14:12:09 +0100 Subject: [PATCH 2/3] Make use of LINK_PRIVATE flag to fix warning on CMake policy 0022. --- CMakeLists.txt | 3 +-- cpp/CMakeLists.txt | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a1412d8..8558564 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -479,8 +479,7 @@ else(MSVC) add_library(poppler SHARED ${poppler_SRCS}) endif(MSVC) set_target_properties(poppler PROPERTIES VERSION 58.0.0 SOVERSION 58) -target_link_libraries(poppler ${poppler_LIBS}) -target_link_libraries(poppler LINK_INTERFACE_LIBRARIES "") +target_link_libraries(poppler LINK_PRIVATE ${poppler_LIBS}) install(TARGETS poppler RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) if(ENABLE_XPDF_HEADERS) diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt index 5a94219..1128016 100644 --- a/cpp/CMakeLists.txt +++ b/cpp/CMakeLists.txt @@ -26,9 +26,8 @@ add_library(poppler-cpp SHARED ${poppler_cpp_SRCS}) set_target_properties(poppler-cpp PROPERTIES VERSION 0.2.1 SOVERSION 0) target_link_libraries(poppler-cpp poppler ${ICONV_LIBRARIES}) if(MSVC) -target_link_libraries(poppler-cpp ${poppler_LIBS}) +target_link_libraries(poppler-cpp LINK_PRIVATE ${poppler_LIBS}) endif(MSVC) -target_link_libraries(poppler-cpp LINK_INTERFACE_LIBRARIES "") install(TARGETS poppler-cpp RUNTIME DESTINATION bin LIBRARY DESTINATION lib${LIB_SUFFIX} ARCHIVE DESTINATION lib${LIB_SUFFIX}) install(FILES -- 2.6.4 From 59b2658a5f5722a8e4857743a797814cc8dc9d19 Mon Sep 17 00:00:00 2001 From: Adam Reichold <[email protected]> Date: Fri, 25 Dec 2015 14:13:32 +0100 Subject: [PATCH 3/3] Make detection of version one of OpenJPEG prefer a pkg-config manifest if it exists. --- CMakeLists.txt | 1 - cmake/modules/FindLIBOPENJPEG.cmake | 37 +++++++++++++++++++++++-------------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8558564..4e8bcfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -442,7 +442,6 @@ elseif (LIBOPENJPEG2_FOUND) poppler/JPEG2000Stream.cc ) add_definitions(-DUSE_OPENJPEG2) -MESSAGE(${LIBOPENJPEG2_LIBRARIES}) set(poppler_LIBS ${poppler_LIBS} ${LIBOPENJPEG2_LIBRARIES}) else () set(poppler_SRCS ${poppler_SRCS} diff --git a/cmake/modules/FindLIBOPENJPEG.cmake b/cmake/modules/FindLIBOPENJPEG.cmake index d9c1369..8a49193 100644 --- a/cmake/modules/FindLIBOPENJPEG.cmake +++ b/cmake/modules/FindLIBOPENJPEG.cmake @@ -23,31 +23,40 @@ else (LIBOPENJPEG_LIBRARIES AND LIBOPENJPEG_INCLUDE_DIR) set(LIBOPENJPEG_LIBRARIES) set(LIBOPENJPEG_INCLUDE_DIR) - find_path (LIBOPENJPEG_INCLUDE_DIR openjpeg.h PATH_SUFFIXES openjpeg) - find_library(LIBOPENJPEG_LIBRARIES openjpeg) - if(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES) + find_package(PkgConfig REQUIRED) + pkg_check_modules(LIBOPENJPEG libopenjpeg) - set(CMAKE_REQUIRED_INCLUDES ${LIBOPENJPEG_INCLUDE_DIR}) - set(CMAKE_REQUIRED_LIBRARIES ${LIBOPENJPEG_LIBRARIES}) + if(LIBOPENJPEG_FOUND) + add_definitions(-DUSE_OPENJPEG1) + set(LIBOPENJPEG_INCLUDE_DIR ${LIBOPENJPEG_INCLUDE_DIRS}) + else(LIBOPENJPEG_FOUND) -check_cxx_source_compiles(" + find_path (LIBOPENJPEG_INCLUDE_DIR openjpeg.h PATH_SUFFIXES openjpeg) + find_library(LIBOPENJPEG_LIBRARIES openjpeg) + if(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES) + + set(CMAKE_REQUIRED_INCLUDES ${LIBOPENJPEG_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${LIBOPENJPEG_LIBRARIES}) + + check_cxx_source_compiles(" #include <openjpeg.h> int main() { int foo = OPJ_DPARAMETERS_IGNORE_PCLR_CMAP_CDEF_FLAG; return 0; -} -" WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG) +}" + WITH_OPENJPEG_IGNORE_PCLR_CMAP_CDEF_FLAG) - set(CMAKE_REQUIRED_INCLUDES) - set(CMAKE_REQUIRED_LIBRARIES) + set(CMAKE_REQUIRED_INCLUDES) + set(CMAKE_REQUIRED_LIBRARIES) - set(LIBOPENJPEG_FOUND TRUE) - endif(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES) + set(LIBOPENJPEG_FOUND TRUE) + endif(LIBOPENJPEG_INCLUDE_DIR AND LIBOPENJPEG_LIBRARIES) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(LibOpenJPEG DEFAULT_MSG LIBOPENJPEG_LIBRARIES LIBOPENJPEG_INCLUDE_DIR) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(LibOpenJPEG DEFAULT_MSG LIBOPENJPEG_LIBRARIES LIBOPENJPEG_INCLUDE_DIR) + endif (LIBOPENJPEG_FOUND) endif (LIBOPENJPEG_LIBRARIES AND LIBOPENJPEG_INCLUDE_DIR) set(LIBOPENJPEG_INCLUDE_DIRS ${LIBOPENJPEG_INCLUDE_DIR}) -- 2.6.4
signature.asc
Description: OpenPGP digital signature
_______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
