diff options
Diffstat (limited to 'vcpkg/ports/libjpeg-turbo')
| -rw-r--r-- | vcpkg/ports/libjpeg-turbo/add-options-for-docs-headers.patch | 50 | ||||
| -rw-r--r-- | vcpkg/ports/libjpeg-turbo/portfile.cmake | 108 | ||||
| -rw-r--r-- | vcpkg/ports/libjpeg-turbo/usage | 9 | ||||
| -rw-r--r-- | vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake | 38 | ||||
| -rw-r--r-- | vcpkg/ports/libjpeg-turbo/vcpkg.json | 28 | ||||
| -rw-r--r-- | vcpkg/ports/libjpeg-turbo/workaround_cmake_system_processor.patch | 13 |
6 files changed, 246 insertions, 0 deletions
diff --git a/vcpkg/ports/libjpeg-turbo/add-options-for-docs-headers.patch b/vcpkg/ports/libjpeg-turbo/add-options-for-docs-headers.patch new file mode 100644 index 0000000..6e2edb1 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/add-options-for-docs-headers.patch @@ -0,0 +1,50 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c9b4281..2b7b7e1 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -788,9 +788,6 @@ if(WITH_TURBOJPEG) + target_link_libraries(tjbench m) + endif() + endif() +- +- add_custom_target(tjdoc COMMAND doxygen -s ../doc/doxygen.config +- WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src) + endif() + + if(ENABLE_STATIC) +@@ -2060,35 +2057,6 @@ if(WITH_TOOLS) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin) + endif() + +-install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg +- ${CMAKE_CURRENT_SOURCE_DIR}/README.md +- ${CMAKE_CURRENT_SOURCE_DIR}/src/example.c +- ${CMAKE_CURRENT_SOURCE_DIR}/src/tjcomp.c +- ${CMAKE_CURRENT_SOURCE_DIR}/src/tjdecomp.c +- ${CMAKE_CURRENT_SOURCE_DIR}/src/tjtran.c +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/libjpeg.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/structure.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/usage.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/wizard.txt +- ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR} +- COMPONENT doc) +-if(WITH_JAVA) +- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJComp.java +- ${CMAKE_CURRENT_SOURCE_DIR}/java/TJDecomp.java +- ${CMAKE_CURRENT_SOURCE_DIR}/java/TJTran.java +- DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc) +-endif() +- +-if(UNIX OR MINGW) +- if(WITH_TOOLS) +- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/doc/cjpeg.1 +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/djpeg.1 +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/jpegtran.1 +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/rdjpgcom.1 +- ${CMAKE_CURRENT_SOURCE_DIR}/doc/wrjpgcom.1 +- DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT man) +- endif() +-endif() + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc + DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib) + if(WITH_TURBOJPEG) diff --git a/vcpkg/ports/libjpeg-turbo/portfile.cmake b/vcpkg/ports/libjpeg-turbo/portfile.cmake new file mode 100644 index 0000000..c698b71 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/portfile.cmake @@ -0,0 +1,108 @@ +if(EXISTS "${CURRENT_INSTALLED_DIR}/share/mozjpeg/copyright") + message(FATAL_ERROR "Can't build ${PORT} if mozjpeg is installed. Please remove mozjpeg:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") +endif() +if(EXISTS "${CURRENT_INSTALLED_DIR}/share/ijg-libjpeg/copyright") + message(FATAL_ERROR "Can't build ${PORT} if ijg-libjpeg is installed. Please remove ijg-libjpeg:${TARGET_TRIPLET}, and try to install ${PORT}:${TARGET_TRIPLET} again.") +endif() +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO libjpeg-turbo/libjpeg-turbo + REF "${VERSION}" + SHA512 91918fe0d6a2f74fa0faf9141a341a18d123684ceef0ec6a18d4b82fd47f13a939c2dd01c511d83567d1397e7344bd323f921ee5a1095cc61542a97b01ae9301 + HEAD_REF master + PATCHES + add-options-for-docs-headers.patch + # workaround for vcpkg bug see #5697 on github for more information + workaround_cmake_system_processor.patch +) + +if(VCPKG_TARGET_ARCHITECTURE STREQUAL "wasm32") + set(LIBJPEGTURBO_SIMD -DWITH_SIMD=OFF) +elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" OR (VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")) + set(LIBJPEGTURBO_SIMD -DWITH_SIMD=ON -DNEON_INTRINSICS=ON) +else() + set(LIBJPEGTURBO_SIMD -DWITH_SIMD=ON) + vcpkg_find_acquire_program(NASM) + get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY) + set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}") +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(ENV{_CL_} "-DNO_GETENV -DNO_PUTENV") +endif() + +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" ENABLE_SHARED) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC) +string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" WITH_CRT_DLL) + +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + jpeg7 WITH_JPEG7 + jpeg8 WITH_JPEG8 + tools WITH_TOOLS +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DENABLE_STATIC=${ENABLE_STATIC} + -DENABLE_SHARED=${ENABLE_SHARED} + -DWITH_CRT_DLL=${WITH_CRT_DLL} + ${FEATURE_OPTIONS} + ${LIBJPEGTURBO_SIMD} + MAYBE_UNUSED_VARIABLES + WITH_CRT_DLL +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() + +if(WITH_TOOLS) + vcpkg_copy_tools( + TOOL_NAMES cjpeg djpeg jpegtran rdjpgcom wrjpgcom + AUTO_CLEAN + ) + vcpkg_clean_executables_in_bin( + FILE_NAMES tjbench + ) +endif() + +vcpkg_fixup_pkgconfig() +vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/libjpeg-turbo) + +# Rename libraries for static builds +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/jpeg-static.lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/jpeg-static.lib" "${CURRENT_PACKAGES_DIR}/lib/jpeg.lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/turbojpeg-static.lib" "${CURRENT_PACKAGES_DIR}/lib/turbojpeg.lib") + endif() + if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg-static.lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/jpeg.lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/turbojpeg-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/turbojpeg.lib") + endif() + + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") + + if (EXISTS "${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-debug.cmake") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-debug.cmake" + "jpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "jpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-debug.cmake" + "turbojpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "turbojpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) + endif() + if (EXISTS "${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-release.cmake") + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-release.cmake" + "jpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "jpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) + vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/share/${PORT}/libjpeg-turboTargets-release.cmake" + "turbojpeg-static${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" "turbojpeg${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" IGNORE_UNCHANGED) + endif() +endif() + +file(REMOVE_RECURSE + "${CURRENT_PACKAGES_DIR}/debug/share" + "${CURRENT_PACKAGES_DIR}/debug/include" + "${CURRENT_PACKAGES_DIR}/share/man") + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(COPY "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" DESTINATION "${CURRENT_PACKAGES_DIR}/share/jpeg") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.md") diff --git a/vcpkg/ports/libjpeg-turbo/usage b/vcpkg/ports/libjpeg-turbo/usage new file mode 100644 index 0000000..fd8720a --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/usage @@ -0,0 +1,9 @@ +libjpeg-turbo is compatible with built-in implementation-agnostic CMake targets:
+
+ find_package(JPEG REQUIRED)
+ target_link_libraries(main PRIVATE JPEG::JPEG)
+
+libjpeg-turbo provides CMake targets for the TurboJPEG C API:
+
+ find_package(libjpeg-turbo CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:libjpeg-turbo::turbojpeg>,libjpeg-turbo::turbojpeg,libjpeg-turbo::turbojpeg-static>)
diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake new file mode 100644 index 0000000..d63c58b --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/vcpkg-cmake-wrapper.cmake @@ -0,0 +1,38 @@ +cmake_policy(PUSH)
+cmake_policy(SET CMP0012 NEW)
+cmake_policy(SET CMP0054 NEW)
+find_path(JPEG_INCLUDE_DIR NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH)
+find_library(JPEG_LIBRARY_RELEASE NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH)
+find_library(JPEG_LIBRARY_DEBUG NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH)
+if(CMAKE_VERSION VERSION_LESS 3.12 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(JPEG_LIBRARY "${JPEG_LIBRARY_DEBUG}" CACHE FILEPATH "")
+endif()
+_find_package(${ARGS})
+if(JPEG_FOUND AND NOT TARGET JPEG::JPEG)
+ # Backfill JPEG::JPEG to versions of cmake before 3.12
+ add_library(JPEG::JPEG UNKNOWN IMPORTED)
+ if(DEFINED JPEG_INCLUDE_DIRS)
+ set_target_properties(JPEG::JPEG PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${JPEG_INCLUDE_DIRS}")
+ endif()
+ if(EXISTS "${JPEG_LIBRARY}")
+ set_target_properties(JPEG::JPEG PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${JPEG_LIBRARY}")
+ endif()
+ if(EXISTS "${JPEG_LIBRARY_RELEASE}")
+ set_property(TARGET JPEG::JPEG APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS RELEASE)
+ set_target_properties(JPEG::JPEG PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "C"
+ IMPORTED_LOCATION_RELEASE "${JPEG_LIBRARY_RELEASE}")
+ endif()
+ if(EXISTS "${JPEG_LIBRARY_DEBUG}")
+ set_property(TARGET JPEG::JPEG APPEND PROPERTY
+ IMPORTED_CONFIGURATIONS DEBUG)
+ set_target_properties(JPEG::JPEG PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "C"
+ IMPORTED_LOCATION_DEBUG "${JPEG_LIBRARY_DEBUG}")
+ endif()
+endif()
+cmake_policy(POP)
diff --git a/vcpkg/ports/libjpeg-turbo/vcpkg.json b/vcpkg/ports/libjpeg-turbo/vcpkg.json new file mode 100644 index 0000000..0de5d1c --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/vcpkg.json @@ -0,0 +1,28 @@ +{ + "name": "libjpeg-turbo", + "version": "3.1.2", + "description": "libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.", + "homepage": "https://github.com/libjpeg-turbo/libjpeg-turbo", + "license": "BSD-3-Clause", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + }, + { + "name": "vcpkg-cmake-config", + "host": true + } + ], + "features": { + "jpeg7": { + "description": "Emulate libjpeg v7 API/ABI (this makes libjpeg-turbo backward-incompatible with libjpeg v6b!)" + }, + "jpeg8": { + "description": "Emulate libjpeg v8 API/ABI (this makes libjpeg-turbo backward-incompatible with libjpeg v6b!)" + }, + "tools": { + "description": "Build executables" + } + } +} diff --git a/vcpkg/ports/libjpeg-turbo/workaround_cmake_system_processor.patch b/vcpkg/ports/libjpeg-turbo/workaround_cmake_system_processor.patch new file mode 100644 index 0000000..1c0b138 --- /dev/null +++ b/vcpkg/ports/libjpeg-turbo/workaround_cmake_system_processor.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 55ff716..abad9fa 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -105,7 +105,7 @@ include(cmakescripts/PackageInfo.cmake) + + # Detect CPU type and whether we're building 64-bit or 32-bit code + math(EXPR BITS "${CMAKE_SIZEOF_VOID_P} * 8") +-string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} CMAKE_SYSTEM_PROCESSOR_LC) ++string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR_LC) + set(COUNT 1) + foreach(ARCH ${CMAKE_OSX_ARCHITECTURES}) + if(COUNT GREATER 1) |