comparison mupdf-source/thirdparty/leptonica/src/CMakeLists.txt @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 #
2 # leptonica
3 #
4
5 ################################################################################
6
7 ########################################
8 # SHARED LIBRARY leptonica
9 ########################################
10
11 file(GLOB hdr "*.h")
12 file(GLOB src "*.c")
13
14 string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
15
16 add_library (leptonica ${src} ${hdr})
17 set_target_properties (leptonica PROPERTIES VERSION 6.0.0)
18 set_target_properties (leptonica PROPERTIES SOVERSION 6)
19 set_target_properties (leptonica PROPERTIES OUTPUT_NAME leptonica$<$<BOOL:${MSVC}>:-${PROJECT_VERSION}$<$<CONFIG:DEBUG>:d>>)
20
21 if (BUILD_SHARED_LIBS)
22 target_compile_definitions (leptonica PRIVATE -DLIBLEPT_EXPORTS)
23 endif()
24
25 if (GIF_LIBRARIES)
26 target_include_directories (leptonica PRIVATE ${GIF_INCLUDE_DIR})
27 target_link_libraries (leptonica PRIVATE ${GIF_LIBRARIES})
28 endif()
29 if (JPEG_LIBRARIES)
30 target_include_directories (leptonica PRIVATE ${JPEG_INCLUDE_DIR})
31 target_link_libraries (leptonica PRIVATE ${JPEG_LIBRARIES})
32 endif()
33 if (OPENJPEG_LIBRARIES)
34 # openjp2 < 2.5.0 does not sets the INTERFACE_INCLUDE_DIRECTORIES property
35 target_include_directories (leptonica PRIVATE ${OPENJPEG_INCLUDE_DIRS})
36 target_link_libraries (leptonica PRIVATE openjp2)
37 endif()
38 if (PNG_LIBRARIES)
39 target_include_directories (leptonica PRIVATE ${PNG_INCLUDE_DIRS})
40 target_link_libraries (leptonica PRIVATE ${PNG_LIBRARIES})
41 endif()
42 if (TIFF_LIBRARIES)
43 target_include_directories (leptonica PRIVATE ${TIFF_INCLUDE_DIR})
44 target_link_libraries (leptonica PRIVATE ${TIFF_LIBRARIES})
45 endif()
46 if (WebP_LIBRARIES)
47 if(TARGET WebP::webp)
48 target_link_libraries (leptonica PRIVATE WebP::webp WebP::libwebpmux)
49 else()
50 target_link_libraries (leptonica PRIVATE ${WebP_LIBRARIES})
51 target_include_directories(leptonica PRIVATE ${WebP_INCLUDE_DIR})
52 endif()
53 endif()
54 if (ZLIB_LIBRARIES)
55 target_include_directories (leptonica PRIVATE ${ZLIB_INCLUDE_DIRS})
56 target_link_libraries (leptonica PRIVATE ${ZLIB_LIBRARIES})
57 endif()
58
59 if (UNIX)
60 target_link_libraries (leptonica PRIVATE m)
61 set(lib ${CMAKE_SHARED_LIBRARY_PREFIX})
62 set(dll ${CMAKE_SHARED_LIBRARY_SUFFIX})
63 set(old_target ${lib}lept${dll})
64 if (SYM_LINK)
65 add_custom_target(lept ALL
66 ${CMAKE_COMMAND} -E create_symlink "$<TARGET_FILE:leptonica>" ${old_target}
67 DEPENDS ${PROJECT_NAME}
68 COMMENT "Creating lept symlink")
69 install(FILES ${CMAKE_BINARY_DIR}/src/${old_target} DESTINATION lib)
70 endif(SYM_LINK)
71 endif()
72
73 if (MSVC)
74 target_link_libraries (leptonica PRIVATE user32.lib gdi32.lib)
75 endif()
76
77 if (NOT SW_BUILD)
78 export(TARGETS leptonica FILE ${CMAKE_BINARY_DIR}/LeptonicaTargets.cmake)
79 else()
80 target_link_libraries (leptonica PRIVATE
81 org.sw.demo.gif
82 org.sw.demo.jpeg
83 org.sw.demo.glennrp.png
84 org.sw.demo.tiff
85 org.sw.demo.webmproject.webp
86 org.sw.demo.uclouvain.openjpeg.openjp2
87 )
88 file(WRITE ${CMAKE_BINARY_DIR}/LeptonicaTargets.cmake "include(${CMAKE_BINARY_DIR}/cppan.cmake)\n")
89 export(TARGETS leptonica APPEND FILE ${CMAKE_BINARY_DIR}/LeptonicaTargets.cmake)
90 endif()
91
92 install(TARGETS leptonica EXPORT LeptonicaTargets RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
93 install(EXPORT LeptonicaTargets DESTINATION ${leptonica_INSTALL_CMAKE_DIR})
94 install(FILES
95 ${hdr}
96 ${CMAKE_BINARY_DIR}/src/endianness.h
97 DESTINATION include/leptonica)
98
99 ################################################################################