Tags: libjpeg-turbo/libjpeg-turbo
Tags
Build: Make package cfg files/install relocatable This fully reverts c96e93b. Specifying a full path with install(TARGETS ...) causes the paths in the CMake package config files to be hard-coded, which effectively makes the package non-relocatable. Specifying a full path with other install() commands breaks the --prefix option to cmake --install. There is in fact no sane way to support blank install directories. Integrators who wish to install certain files into the main libjpeg-turbo install directory can set a particular CMAKE_INSTALL_*DIR variable to "<CMAKE_INSTALL_PREFIX>", with the understanding that doing so will break relocatability in the same way that c96e93b did. This commit also tweaks the RPM spec so that RPMs built from a source RPM will contain relocatable CMake package config files.
Build: Make package cfg files/install relocatable This fully reverts c96e93b. Specifying a full path with install(TARGETS ...) causes the paths in the CMake package config files to be hard-coded, which effectively makes the package non-relocatable. Specifying a full path with other install() commands breaks the --prefix option to cmake --install. There is in fact no sane way to support blank install directories. Integrators who wish to install certain files into the main libjpeg-turbo install directory can set a particular CMAKE_INSTALL_*DIR variable to "<CMAKE_INSTALL_PREFIX>", with the understanding that doing so will break relocatability in the same way that c96e93b did. This commit also tweaks the RPM spec so that RPMs built from a source RPM will contain relocatable CMake package config files.
Build: Don't modify CMAKE_C_FLAGS_* if specified The build system originally force-enabled the maximum optimization level (-O3) with GCC because it significantly improved the performance of the C Huffman encoder on x86 platforms. Since libjpeg-turbo 1.5.x, the Huffman encoder has been SIMD-accelerated on x86 and Arm platforms, and in my testing on various Intel CPUs, the difference between -O2 and -O3 is no longer statistically significant. However, on certain Arm CPUs, I observe that grayscale decompression slows down by 16-27% with -O2 vs. -O3. Although modern versions of CMake use -O3 as the default optimization level for Release builds, -O2 is still the default optimization level for RelWithDebInfo builds. Thus, I am reluctant to change the default behavior of our build system. However, referring to #815, some users observe better performance with -O2 vs. -O3 on other Arm CPUs, so the build system needs to allow users to override the default behavior. Closes #815
Build: Fix float test errors with Xcode 14.2/Arm Unlike other versions of Clang 14.0.0, AppleClang 14.0.0 in Xcode 14.2 retains the old -ffp-contract=off default. Apple didn't adopt -ffp-contract=on as the default until Xcode 14.3 (AppleClang 14.0.3.) This has been confirmed in the Xcode 14.3 release notes.
PreviousNext