diff options
| author | JackBoosY <47264268+JackBoosY@users.noreply.github.com> | 2019-10-30 14:05:27 +0800 |
|---|---|---|
| committer | Victor Romero <romerosanchezv@gmail.com> | 2019-10-29 23:05:27 -0700 |
| commit | be99ba1f5a7fa7bedf6b60afa6b8f060bd9b4eac (patch) | |
| tree | 9fc0c36099438e003b24a4308f4430fa8891bd9d | |
| parent | cd42fba998d50f6660814c4e5a7884f583192d15 (diff) | |
| download | vcpkg-be99ba1f5a7fa7bedf6b60afa6b8f060bd9b4eac.tar.gz vcpkg-be99ba1f5a7fa7bedf6b60afa6b8f060bd9b4eac.zip | |
[libyuv]Build corresponding type library according to BUILD_SHARED_LIBS. (#8769)
* [libyuv]Build corresponding type library according to BUILD_SHARED_LIBS.
* [libyuv]Always use static build.
| -rw-r--r-- | ports/libyuv/CONTROL | 2 | ||||
| -rw-r--r-- | ports/libyuv/fix-build-type.patch | 53 | ||||
| -rw-r--r-- | ports/libyuv/portfile.cmake | 36 |
3 files changed, 58 insertions, 33 deletions
diff --git a/ports/libyuv/CONTROL b/ports/libyuv/CONTROL index d724a65f4..63dfda401 100644 --- a/ports/libyuv/CONTROL +++ b/ports/libyuv/CONTROL @@ -1,4 +1,4 @@ Source: libyuv
-Version: fec9121
+Version: fec9121-1
Build-Depends: libjpeg-turbo
Description: libyuv is an open source project that includes YUV scaling and conversion functionality.
diff --git a/ports/libyuv/fix-build-type.patch b/ports/libyuv/fix-build-type.patch new file mode 100644 index 000000000..984a1253f --- /dev/null +++ b/ports/libyuv/fix-build-type.patch @@ -0,0 +1,53 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 097434b..8f8864f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -28,21 +28,25 @@ LIST ( SORT ly_unittest_sources ) + INCLUDE_DIRECTORIES( BEFORE ${ly_inc_dir} ) + + # this creates the static library (.a) ++if (NOT BUILD_SHARED_LIBS) + ADD_LIBRARY ( ${ly_lib_static} STATIC ${ly_source_files} ) + SET_TARGET_PROPERTIES( ${ly_lib_static} PROPERTIES PUBLIC_HEADER include/libyuv.h ) +- ++else() + # this creates the shared library (.so) + ADD_LIBRARY ( ${ly_lib_shared} SHARED ${ly_source_files} ) + SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES OUTPUT_NAME "${ly_lib_name}" ) + SET_TARGET_PROPERTIES ( ${ly_lib_shared} PROPERTIES PREFIX "lib" ) +- ++endif() + # this creates the conversion tool + ADD_EXECUTABLE ( yuvconvert ${ly_base_dir}/util/yuvconvert.cc ) +-TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} ) +- ++if (BUILD_SHARED_LIBS) ++ TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_shared} ) ++else() ++ TARGET_LINK_LIBRARIES ( yuvconvert ${ly_lib_static} ) ++endif() + + INCLUDE ( FindJPEG ) +-if (JPEG_FOUND) ++if (JPEG_FOUND AND BUILD_SHARED_LIBS) + include_directories( ${JPEG_INCLUDE_DIR} ) + target_link_libraries( ${ly_lib_shared} PUBLIC ${JPEG_LIBRARY} ) + target_link_libraries( yuvconvert ${JPEG_LIBRARY} ) +@@ -88,11 +92,13 @@ endif() + + + # install the conversion tool, .so, .a, and all the header files +-INSTALL ( TARGETS yuvconvert DESTINATION bin ) ++INSTALL ( TARGETS yuvconvert DESTINATION tools ) + INSTALL ( FILES ${ly_include_files} DESTINATION include/libyuv ) +-INSTALL ( TARGETS ${ly_lib_static} EXPORT libyuv-export DESTINATION lib INCLUDES DESTINATION include PUBLIC_HEADER DESTINATION include ) +-INSTALL ( TARGETS ${ly_lib_shared} EXPORT libyuv-export LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) +- ++if (NOT BUILD_SHARED_LIBS) ++ INSTALL ( TARGETS ${ly_lib_static} EXPORT libyuv-export DESTINATION lib INCLUDES DESTINATION include PUBLIC_HEADER DESTINATION include ) ++else() ++ INSTALL ( TARGETS ${ly_lib_shared} EXPORT libyuv-export LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) ++endif() + INSTALL( EXPORT libyuv-export FILE libyuv-config.cmake DESTINATION share/cmake/libyuv/ EXPORT_LINK_INTERFACE_LIBRARIES ) + + # create the .deb and .rpm packages using cpack diff --git a/ports/libyuv/portfile.cmake b/ports/libyuv/portfile.cmake index 037964c70..1e955c185 100644 --- a/ports/libyuv/portfile.cmake +++ b/ports/libyuv/portfile.cmake @@ -1,4 +1,3 @@ -include(vcpkg_common_functions)
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_git(
@@ -7,6 +6,7 @@ vcpkg_from_git( REF fec9121b676eccd9acea2460aec7d6ae219701b9
PATCHES
fix_cmakelists.patch
+ fix-build-type.patch
)
set(POSTFIX d)
@@ -18,38 +18,10 @@ vcpkg_configure_cmake( )
vcpkg_install_cmake()
+vcpkg_copy_pdbs()
-set(YUVCONVERT_FNAME yuvconvert.exe)
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- set(YUVCONVERT_FNAME yuvconvert)
-endif()
+vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/libyuv)
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/yuv)
- file(RENAME ${CURRENT_PACKAGES_DIR}/bin/${YUVCONVERT_FNAME} ${CURRENT_PACKAGES_DIR}/tools/yuv/${YUVCONVERT_FNAME})
-endif()
-if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/${YUVCONVERT_FNAME})
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-endif()
-
-set(LIBRARY_TYPE SHARED)
-set(IMPORT_TYPE IMPLIB)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- set(LIBRARY_TYPE STATIC)
- set(IMPORT_TYPE LOCATION)
-
- if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/libyuv.dll)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/libyuv.dylib)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
- endif()
- if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/libyuvd.dll)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/libyuvd.dylib)
- file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin)
- endif()
-endif()
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libyuv RENAME copyright)
|
