mirror of https://github.com/microsoft/vcpkg.git
[libraw] Re-fix non-thread-safe library installation, always export pkgconfig files, add usage (#19593)
* [libraw] Re-fix non-thread-safe library installation, always export pkgconfig files, add usage * format manifest and version * Update ports/libraw/portfile.cmake * Update ports/libraw/portfile.cmake * Update ports/libraw/portfile.cmake * update version * version * Fix wrapper and usage * version * apply suggestions * version * Fix cmake install path * version * Fix usage * version
This commit is contained in:
parent
3422caf654
commit
657d66a6cb
|
|
@ -0,0 +1,36 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 47f3869..136549b 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -544,7 +544,7 @@ SET_TARGET_PROPERTIES(raw_r PROPERTIES OUTPUT_NAME "raw_r")
|
||||
# -- Files to install -------------------------------------------------------------------------------------
|
||||
|
||||
# Configure and install data file for packaging.
|
||||
-IF(NOT WIN32)
|
||||
+IF(1)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/data/libraw.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libraw.pc @ONLY)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libraw.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
|
||||
|
||||
@@ -570,8 +570,8 @@ INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/libraw/libraw.h
|
||||
# Install Shared binary files.
|
||||
INSTALL(TARGETS raw
|
||||
RUNTIME DESTINATION bin
|
||||
- LIBRARY DESTINATION lib${LIB_SUFFIX}
|
||||
- ARCHIVE DESTINATION lib${LIB_SUFFIX}
|
||||
+ LIBRARY DESTINATION lib${LIB_SUFFIX}/manual-link
|
||||
+ ARCHIVE DESTINATION lib${LIB_SUFFIX}/manual-link
|
||||
)
|
||||
|
||||
INSTALL(TARGETS raw_r
|
||||
diff --git a/cmake/data/libraw.pc.cmake b/cmake/data/libraw.pc.cmake
|
||||
index aede5f2..ffeefc2 100644
|
||||
--- a/cmake/data/libraw.pc.cmake
|
||||
+++ b/cmake/data/libraw.pc.cmake
|
||||
@@ -1,6 +1,6 @@
|
||||
prefix=@CMAKE_INSTALL_PREFIX@
|
||||
exec_prefix=${prefix}
|
||||
-libdir=${prefix}/lib@LIB_SUFFIX@
|
||||
+libdir=${prefix}/lib@LIB_SUFFIX@/manual-link
|
||||
includedir=${prefix}/include/libraw
|
||||
|
||||
Name: @PROJECT_NAME@
|
||||
|
|
@ -15,66 +15,41 @@ vcpkg_from_github(
|
|||
PATCHES
|
||||
findlibraw_debug_fix.patch
|
||||
lcms2_debug_fix.patch
|
||||
# Move the non-thread-safe library to manual-link. This is unfortunately needed
|
||||
# because otherwise libraries that build on top of libraw have to choose.
|
||||
fix-install.patch
|
||||
)
|
||||
|
||||
file(COPY ${LIBRAW_CMAKE_SOURCE_PATH}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
|
||||
file(COPY ${LIBRAW_CMAKE_SOURCE_PATH}/cmake DESTINATION ${SOURCE_PATH})
|
||||
file(COPY "${LIBRAW_CMAKE_SOURCE_PATH}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
|
||||
file(COPY "${LIBRAW_CMAKE_SOURCE_PATH}/cmake" DESTINATION "${SOURCE_PATH}")
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DINSTALL_CMAKE_MODULE_PATH=${CURRENT_PACKAGES_DIR}/share/libraw
|
||||
-DINSTALL_CMAKE_MODULE_PATH=share/${PORT}
|
||||
-DENABLE_EXAMPLES=OFF
|
||||
-DCMAKE_DEBUG_POSTFIX=d
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
|
||||
file(READ ${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h LIBRAW_H)
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||
string(REPLACE "#ifdef LIBRAW_NODLL" "#if 1" LIBRAW_H "${LIBRAW_H}")
|
||||
else()
|
||||
string(REPLACE "#ifdef LIBRAW_NODLL" "#if 0" LIBRAW_H "${LIBRAW_H}")
|
||||
endif()
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h "${LIBRAW_H}")
|
||||
|
||||
if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
# Rename thread-safe version to be "raw.lib". This is unfortunately needed
|
||||
# because otherwise libraries that build on top of libraw have to choose.
|
||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/raw.lib ${CURRENT_PACKAGES_DIR}/debug/lib/rawd.lib)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/lib/raw_r.lib ${CURRENT_PACKAGES_DIR}/lib/raw.lib)
|
||||
if(NOT VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/raw_rd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/rawd.lib)
|
||||
endif()
|
||||
|
||||
# Cleanup
|
||||
file(GLOB RELEASE_EXECUTABLES ${CURRENT_PACKAGES_DIR}/bin/*.exe)
|
||||
file(REMOVE ${RELEASE_EXECUTABLES})
|
||||
if(NOT VCPKG_BUILD_TYPE STREQUAL "release")
|
||||
file(GLOB DEBUG_EXECUTABLES ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
|
||||
file(REMOVE ${DEBUG_EXECUTABLES})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
|
||||
else()
|
||||
if(VCPKG_CMAKE_SYSTEM_NAME AND NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/raw.dll ${CURRENT_PACKAGES_DIR}/debug/bin/rawd.dll)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
|
||||
|
||||
# Rename cmake module into a config in order to allow more flexible lookup rules
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libraw/FindLibRaw.cmake ${CURRENT_PACKAGES_DIR}/share/libraw/libraw-config.cmake)
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/libraw)
|
||||
endif()
|
||||
vcpkg_cmake_install()
|
||||
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/COPYRIGHT DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h"
|
||||
"#ifdef LIBRAW_NODLL" "#if 1"
|
||||
)
|
||||
else()
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/libraw/libraw_types.h"
|
||||
"#ifdef LIBRAW_NODLL" "#if 0"
|
||||
)
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
|
||||
file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
The package libraw is compatible with built-in CMake targets:
|
||||
|
||||
find_package(LibRaw REQUIRED)
|
||||
# For non-thread-safe version
|
||||
target_compile_definitions(main PRIVATE ${LibRaw_DEFINITIONS})
|
||||
target_include_directories(main PRIVATE ${LibRaw_INCLUDE_DIR})
|
||||
target_link_libraries(main PRIVATE ${LibRaw_LIBRARIES})
|
||||
# For thread-safe version
|
||||
target_compile_definitions(main PRIVATE ${LibRaw_r_DEFINITIONS})
|
||||
target_include_directories(main PRIVATE ${LibRaw_INCLUDE_DIR})
|
||||
target_link_libraries(main PRIVATE ${LibRaw_r_LIBRARIES})
|
||||
|
|
@ -1,7 +1,12 @@
|
|||
set(LIBRAW_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
|
||||
_find_package(${ARGS})
|
||||
find_package(Jasper REQUIRED)
|
||||
if (Jasper_FOUND)
|
||||
list(APPEND LibRaw_LIBRARIES ${JASPER_LIBRARIES})
|
||||
list(APPEND LibRaw_r_LIBRARIES ${JASPER_LIBRARIES})
|
||||
endif ()
|
||||
set(CMAKE_MODULE_PATH ${LIBRAW_PREV_MODULE_PATH})
|
||||
|
||||
if (@VCPKG_LIBRARY_LINKAGE@ STREQUAL "static")
|
||||
find_package(Jasper REQUIRED)
|
||||
if (Jasper_FOUND)
|
||||
list(APPEND LibRaw_LIBRARIES ${JASPER_LIBRARIES})
|
||||
list(APPEND LibRaw_r_LIBRARIES ${JASPER_LIBRARIES})
|
||||
endif ()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -1,11 +1,15 @@
|
|||
{
|
||||
"name": "libraw",
|
||||
"version-string": "201903",
|
||||
"port-version": 4,
|
||||
"port-version": 5,
|
||||
"description": "raw image decoder library",
|
||||
"homepage": "https://www.libraw.org",
|
||||
"dependencies": [
|
||||
"jasper",
|
||||
"lcms"
|
||||
"lcms",
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3742,7 +3742,7 @@
|
|||
},
|
||||
"libraw": {
|
||||
"baseline": "201903",
|
||||
"port-version": 4
|
||||
"port-version": 5
|
||||
},
|
||||
"librdkafka": {
|
||||
"baseline": "1.7.0",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "fa490349ec4e8e8d8854c18725068a8a8474b3ac",
|
||||
"version-string": "201903",
|
||||
"port-version": 5
|
||||
},
|
||||
{
|
||||
"git-tree": "80a0638bcb03f5e4c53f4b35562da7b8485fda11",
|
||||
"version-string": "201903",
|
||||
|
|
|
|||
Loading…
Reference in New Issue