Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[mozjpeg] fix build #12118

Merged
merged 7 commits into from
Jul 31, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion ports/mozjpeg/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Source: mozjpeg
Version: 2020-06-02
saucecontrol marked this conversation as resolved.
Show resolved Hide resolved
Version: 2020-06-02-1
Build-Depends: libpng
Homepage: https://github.com/mozilla/mozjpeg
Description: MozJPEG reduces file sizes of JPEG images while retaining quality and compatibility with the vast majority of the world's deployed decoders. It's compatible with libjpeg API and ABI, and can be used as a drop-in replacement for libjpeg.
117 changes: 12 additions & 105 deletions ports/mozjpeg/fix-install-error.patch
Original file line number Diff line number Diff line change
@@ -1,126 +1,33 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 51f4714..9ca3463 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1370,21 +1370,28 @@ endif()
@@ -1369,13 +1369,13 @@
###############################################################################

set(EXE ${CMAKE_EXECUTABLE_SUFFIX})

+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
+ set(REAL_BUILDS_PATH "Debug/")
+else()
+ set(REAL_BUILDS_PATH "Release/")
+endif()
+
if(WITH_TURBOJPEG)
if(ENABLE_SHARED)
install(TARGETS turbojpeg tjbench
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg
+ RUNTIME DESTINATION tools/mozjpeg)
- install(TARGETS turbojpeg tjbench
+ install(TARGETS turbojpeg #tjbench
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND
CMAKE_C_LINKER_SUPPORTS_PDB)
install(FILES "$<TARGET_PDB_FILE:turbojpeg>"
- DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
+ DESTINATION ${CMAKE_INSTALL_BINDIR}/mozjpeg OPTIONAL)
endif()
endif()
if(ENABLE_STATIC)
- install(TARGETS turbojpeg-static ARCHIVE
- DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(TARGETS turbojpeg-static
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg)
if(NOT ENABLE_SHARED)
if(MSVC_IDE OR XCODE)
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
@@ -1392,15 +1399,15 @@ if(WITH_TURBOJPEG)
set(DIR ${CMAKE_CURRENT_BINARY_DIR})
endif()
install(PROGRAMS ${DIR}/tjbench-static${EXE}
- DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME tjbench${EXE})
+ DESTINATION tools/mozjpeg RENAME tjbench${EXE})
endif()
endif()
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg.h
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mozjpeg)
endif()

if(ENABLE_STATIC)
- install(TARGETS jpeg-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(TARGETS jpeg-static ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg)
if(NOT ENABLE_SHARED)
if(MSVC_IDE OR XCODE)
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
@@ -1408,15 +1415,15 @@ if(ENABLE_STATIC)
set(DIR ${CMAKE_CURRENT_BINARY_DIR})
endif()
install(PROGRAMS ${DIR}/cjpeg-static${EXE}
- DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME cjpeg${EXE})
+ DESTINATION tools/mozjpeg RENAME cjpeg${EXE})
install(PROGRAMS ${DIR}/djpeg-static${EXE}
- DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME djpeg${EXE})
+ DESTINATION tools/mozjpeg RENAME djpeg${EXE})
@@ -1413,13 +1413,13 @@
DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME djpeg${EXE})
install(PROGRAMS ${DIR}/jpegtran-static${EXE}
- DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME jpegtran${EXE})
+ DESTINATION tools/mozjpeg RENAME jpegtran${EXE})
DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME jpegtran${EXE})
endif()
endif()

-install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION tools/mozjpeg)
+#install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_SOURCE_DIR}/example.txt
@@ -1424,10 +1431,10 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
${CMAKE_CURRENT_SOURCE_DIR}/tjexample.c
${CMAKE_CURRENT_SOURCE_DIR}/libjpeg.txt
${CMAKE_CURRENT_SOURCE_DIR}/structure.txt
${CMAKE_CURRENT_SOURCE_DIR}/usage.txt ${CMAKE_CURRENT_SOURCE_DIR}/wizard.txt
- ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
+ ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION share/mozjpeg)
if(WITH_JAVA)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJExample.java
- DESTINATION ${CMAKE_INSTALL_DOCDIR})
+ DESTINATION share/mozjpeg)
endif()

if(UNIX OR MINGW)
@@ -1439,12 +1446,12 @@ if(UNIX OR MINGW)
endif()
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc
${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libturbojpeg.pc
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/mozjpeg)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h
${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h
${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mozjpeg)

include(cmakescripts/BuildPackages.cmake)

diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt
index f0a7d87..1e82349 100644
--- a/sharedlib/CMakeLists.txt
+++ b/sharedlib/CMakeLists.txt
@@ -92,11 +92,11 @@ add_executable(jcstest ../jcstest.c)
target_link_libraries(jcstest jpeg)

install(TARGETS jpeg cjpeg djpeg jpegtran
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}/mozjpeg
+ RUNTIME DESTINATION tools/mozjpeg)
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND
CMAKE_C_LINKER_SUPPORTS_PDB)
install(FILES "$<TARGET_PDB_FILE:jpeg>"
- DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
+ DESTINATION ${CMAKE_INSTALL_BINDIR}/mozjpeg OPTIONAL)
endif()
33 changes: 20 additions & 13 deletions ports/mozjpeg/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,34 +12,41 @@ vcpkg_find_acquire_program(NASM)
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
vcpkg_add_to_path(${NASM_EXE_PATH})

if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(ENABLE_STATIC_BUILD ON)
set(ENABLE_SHARED_BUILD OFF)
else()
set(ENABLE_STATIC_BUILD OFF)
set(ENABLE_SHARED_BUILD ON)
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_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DDENABLE_SHARED=${ENABLE_SHARED_BUILD}
-DENABLE_STATIC=${ENABLE_STATIC_BUILD}
-DENABLE_SHARED=${ENABLE_SHARED}
-DENABLE_STATIC=${ENABLE_STATIC}
-DWITH_CRT_DLL=${WITH_CRT_DLL}
)

vcpkg_install_cmake()

#remove extra debug files
# 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()
endif()

# Remove extra debug files
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)

vcpkg_copy_tools(${CURRENT_PACKAGES_DIR}/tools/mozjpeg)
vcpkg_copy_tools(TOOL_NAMES cjpeg djpeg jpegtran AUTO_CLEAN)
vcpkg_fixup_pkgconfig()

#remove empty folders after static build
# Remove empty folders after static build
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
Expand Down
3 changes: 2 additions & 1 deletion scripts/ci.baseline.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1082,6 +1082,7 @@ moos-core:x86-windows=fail
moos-essential:arm64-windows=fail
moos-essential:x64-windows=fail
moos-essential:x86-windows=fail
# Conflicts with libjpeg-turbo
mozjpeg:arm64-windows = skip
mozjpeg:arm-uwp = skip
mozjpeg:x64-linux = skip
Expand Down Expand Up @@ -1932,4 +1933,4 @@ ctp:x64-windows=skip
ctp:x64-windows-static=skip
ctp:x86-windows=skip
protozero:arm-uwp=fail
protozero:x64-uwp=fail
protozero:x64-uwp=fail