2019-09-24 04:46:16 +08:00
|
|
|
vcpkg_from_github(
|
2019-03-30 14:23:18 +08:00
|
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
2019-09-24 04:46:16 +08:00
|
|
|
REPO ffmpeg/ffmpeg
|
|
|
|
REF n4.2
|
|
|
|
SHA512 9fa56364696f91e2bf4287954d26f0c35b3f8aad241df3fbd3c9fc617235d8c83b28ddcac88436383b2eb273f690322e6f349e2f9c64d02f0058a4b76fa55035
|
|
|
|
HEAD_REF master
|
2019-03-30 14:23:18 +08:00
|
|
|
PATCHES
|
2019-09-24 04:46:16 +08:00
|
|
|
0001-create-lib-libraries.patch
|
|
|
|
0003-fix-windowsinclude.patch
|
|
|
|
0004-fix-debug-build.patch
|
|
|
|
0005-fix-libvpx-linking.patch
|
2020-04-28 05:43:29 +08:00
|
|
|
0006-fix-StaticFeatures.patch
|
2020-08-19 03:58:14 +08:00
|
|
|
0007-fix-lib-naming.patch
|
|
|
|
0008-Fix-wavpack-detection.patch
|
|
|
|
0009-Fix-fdk-detection.patch
|
|
|
|
0010-Fix-x264-detection.patch
|
|
|
|
0011-Fix-x265-detection.patch
|
|
|
|
0012-Fix-ssl-110-detection.patch
|
2019-03-30 14:23:18 +08:00
|
|
|
)
|
|
|
|
|
2020-09-01 13:36:25 +08:00
|
|
|
if (SOURCE_PATH MATCHES " ")
|
2018-03-24 08:02:23 +08:00
|
|
|
message(FATAL_ERROR "Error: ffmpeg will not build with spaces in the path. Please use a directory with no spaces")
|
|
|
|
endif()
|
|
|
|
|
2017-03-02 23:29:00 +08:00
|
|
|
vcpkg_find_acquire_program(YASM)
|
|
|
|
get_filename_component(YASM_EXE_PATH ${YASM} DIRECTORY)
|
|
|
|
|
2019-08-07 04:25:50 +08:00
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
2019-06-04 07:42:09 +08:00
|
|
|
#We're assuming that if we're building for Windows we're using MSVC
|
2019-06-01 07:25:56 +08:00
|
|
|
set(INCLUDE_VAR "INCLUDE")
|
|
|
|
set(LIB_PATH_VAR "LIB")
|
|
|
|
else()
|
|
|
|
set(INCLUDE_VAR "CPATH")
|
|
|
|
set(LIB_PATH_VAR "LIBRARY_PATH")
|
|
|
|
endif()
|
|
|
|
|
2020-09-01 13:36:25 +08:00
|
|
|
set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${YASM_EXE_PATH}")
|
2020-09-01 08:14:14 +08:00
|
|
|
set(OPTIONS "--enable-asm --enable-yasm --disable-doc --enable-debug --enable-runtime-cpudetect")
|
|
|
|
|
2019-08-07 04:25:50 +08:00
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
2019-06-07 07:04:28 +08:00
|
|
|
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
2020-09-01 13:36:25 +08:00
|
|
|
vcpkg_acquire_msys(MSYS_ROOT
|
|
|
|
DIRECT_PACKAGES
|
|
|
|
# Required for "cpp.exe" preprocessor
|
|
|
|
"https://repo.msys2.org/msys/x86_64/gcc-9.3.0-1-x86_64.pkg.tar.xz"
|
|
|
|
76af0192a092278e6b26814b2d92815a2c519902a3fec056b057faec19623b1770ac928a59a39402db23cfc23b0d7601b7f88b367b27269361748c69d08654b2
|
|
|
|
"https://repo.msys2.org/msys/x86_64/isl-0.22.1-1-x86_64.pkg.tar.xz"
|
|
|
|
f4db50d00bad0fa0abc6b9ad965b0262d936d437a9faa35308fa79a7ee500a474178120e487b2db2259caf51524320f619e18d92acf4f0b970b5cbe5cc0f63a2
|
|
|
|
"https://repo.msys2.org/msys/x86_64/zlib-1.2.11-1-x86_64.pkg.tar.xz"
|
|
|
|
b607da40d3388b440f2a09e154f21966cd55ad77e02d47805f78a9dee5de40226225bf0b8335fdfd4b83f25ead3098e9cb974d4f202f28827f8468e30e3b790d
|
|
|
|
"https://repo.msys2.org/msys/x86_64/mpc-1.1.0-1-x86_64.pkg.tar.xz"
|
|
|
|
7d0715c41c27fdbf91e6dcc73d6b8c02ee62c252e027f0a17fa4bfb974be8a74d8e3a327ef31c2460721902299ef69a7ef3c7fce52c8f02ce1cb47f0b6e073e9
|
|
|
|
"https://repo.msys2.org/msys/x86_64/mpfr-4.1.0-1-x86_64.pkg.tar.zst"
|
|
|
|
d64fa60e188124591d41fc097d7eb51d7ea4940bac05cdcf5eafde951ed1eaa174468f5ede03e61106e1633e3428964b34c96de76321ed8853b398fbe8c4d072
|
|
|
|
"https://repo.msys2.org/msys/x86_64/gmp-6.2.0-1-x86_64.pkg.tar.xz"
|
|
|
|
1389a443e775bb255d905665dd577bef7ed71d51a8c24d118097f8119c08c4dfe67505e88ddd1e9a3764dd1d50ed8b84fa34abefa797d257e90586f0cbf54de8
|
|
|
|
)
|
2019-04-05 13:32:10 +08:00
|
|
|
else()
|
2020-09-01 13:36:25 +08:00
|
|
|
vcpkg_acquire_msys(MSYS_ROOT)
|
2019-04-05 13:32:10 +08:00
|
|
|
endif()
|
[openexr,openimageio,suitesparse,theia] updates for non-win32 (#6371)
* [openexr,openimageio,suitesparse,theia] updates for non-win32
* [theia] use only valid cmake symbols
* [suitesparse] Fix build
* [lapack] still not properly integrating with other ports
* [lapack] intercept cmake module calls and substitute them with our defs
* [suitesparse,clapack] fixes for proper integration
* [ceres,clapack] bump CONTROL
* [suitesparse] remove unnecessary defs
* [clapack] improve wrapper logic
* [WIN32] remove wrong symbol
* [clapack] fix wrapper integration
* [Accelerate] use best framework when available
* [clapack] separate config from wrapper
* [clapack] fix paths and filenames
* [mlpack,armadillo,clapack] improve library handling
* [mlpack] remove unnecessary cmake option
* [clp,coinutils,osi,liblemon] dependencies of openmvg, improve compatibility with non-win32
* [openmvg] fix for case-sensitive filesystems
* [clp,coinutils,osi] simplify CMakeLists removing many unnecessary steps
* [sophus] Force rebuild
* [theia] fixes for linux, part1
* [io2d] remove broken sintax
* [fontconfig] bump version to remove CI cached failure
* [theia] fixes for linux, part2
* [theia] remove unnecessary empty folders and comments from portfile
* [theia] use correct build type removing forced vars in cmakelists.txt
* [openmvg] add missing suitesparse target detection
* [sophus] fix Suitesparse dependency
* [sophus,openmvg] use suitesparse lowercase for module compatibility on case-sensitive filesystems
* [suitesparse] fixes for case-sensitive filesystems
* [openmvg] use correct Eigen3 name for case-sensitive filesystems
* [sophus] trigger rebuild
* [shogun] use modern vcpkg style
* [shogun] add missing cmake system processor symbol
2019-06-01 06:48:17 +08:00
|
|
|
|
2020-09-01 08:14:14 +08:00
|
|
|
set(SHELL ${MSYS_ROOT}/usr/bin/bash.exe)
|
|
|
|
set(OPTIONS "--toolchain=msvc ${OPTIONS}")
|
2018-02-24 16:00:51 +08:00
|
|
|
else()
|
2020-09-01 08:14:14 +08:00
|
|
|
set(SHELL /bin/sh)
|
2018-02-24 16:00:51 +08:00
|
|
|
endif()
|
2019-04-05 13:32:10 +08:00
|
|
|
|
2020-09-01 13:36:25 +08:00
|
|
|
set(ENV{${INCLUDE_VAR}} "${CURRENT_INSTALLED_DIR}/include${VCPKG_HOST_PATH_SEPARATOR}$ENV{${INCLUDE_VAR}}")
|
2017-03-02 23:29:00 +08:00
|
|
|
|
|
|
|
set(_csc_PROJECT_PATH ffmpeg)
|
|
|
|
|
|
|
|
file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
|
|
|
|
|
2018-03-12 21:13:14 +08:00
|
|
|
if("nonfree" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-nonfree")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("gpl" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-gpl")
|
|
|
|
endif()
|
|
|
|
|
2019-12-24 07:37:41 +08:00
|
|
|
if("version3" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-version3")
|
|
|
|
endif()
|
|
|
|
|
2018-09-03 04:06:07 +08:00
|
|
|
if("ffmpeg" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-ffmpeg")
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-ffmpeg")
|
|
|
|
endif()
|
|
|
|
|
2018-03-12 21:13:14 +08:00
|
|
|
if("ffplay" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-ffplay")
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-ffplay")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("ffprobe" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-ffprobe")
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-ffprobe")
|
|
|
|
endif()
|
|
|
|
|
2020-08-15 01:01:01 +08:00
|
|
|
if("avcodec" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-avcodec")
|
|
|
|
set(ENABLE_AVCODEC ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-avcodec")
|
|
|
|
set(ENABLE_AVCODEC OFF)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("avdevice" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-avdevice")
|
|
|
|
set(ENABLE_AVDEVICE ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-avdevice")
|
|
|
|
set(ENABLE_AVDEVICE OFF)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("avformat" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-avformat")
|
|
|
|
set(ENABLE_AVFORMAT ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-avformat")
|
|
|
|
set(ENABLE_AVFORMAT OFF)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("avfilter" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-avfilter")
|
|
|
|
set(ENABLE_AVFILTER ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-avfilter")
|
|
|
|
set(ENABLE_AVFILTER OFF)
|
|
|
|
endif()
|
|
|
|
|
2020-08-19 03:58:14 +08:00
|
|
|
if("postproc" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-postproc")
|
|
|
|
set(ENABLE_POSTPROC ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-postproc")
|
|
|
|
set(ENABLE_POSTPROC OFF)
|
|
|
|
endif()
|
|
|
|
|
2020-08-15 01:01:01 +08:00
|
|
|
if("swresample" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-swresample")
|
|
|
|
set(ENABLE_SWRESAMPLE ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-swresample")
|
|
|
|
set(ENABLE_SWRESAMPLE OFF)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("swscale" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-swscale")
|
|
|
|
set(ENABLE_SWSCALE ON)
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-swscale")
|
|
|
|
set(ENABLE_SWSCALE OFF)
|
|
|
|
endif()
|
|
|
|
|
2020-08-19 03:58:14 +08:00
|
|
|
set(ENABLE_AVRESAMPLE OFF)
|
|
|
|
if("avresample" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-avresample")
|
|
|
|
set(ENABLE_AVRESAMPLE ON)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if("avisynthplus" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-avisynth")
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-avisynth")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(STATIC_LINKAGE OFF)
|
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
|
|
|
set(STATIC_LINKAGE ON)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_BZIP2 OFF)
|
|
|
|
if("bzip2" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-bzlib")
|
|
|
|
set(ENABLE_BZIP2 ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-bzlib")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_ICONV OFF)
|
|
|
|
if("iconv" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-iconv")
|
|
|
|
set(ENABLE_ICONV ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-iconv")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_FDKAAC OFF)
|
|
|
|
if("fdk-aac" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libfdk-aac")
|
|
|
|
set(ENABLE_FDKAAC ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libfdk-aac")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_LZMA OFF)
|
|
|
|
if("lzma" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-lzma")
|
|
|
|
set(ENABLE_LZMA ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-lzma")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_LAME OFF)
|
|
|
|
if("mp3lame" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libmp3lame")
|
|
|
|
set(ENABLE_LAME ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libmp3lame")
|
2020-03-28 11:34:59 +08:00
|
|
|
endif()
|
|
|
|
|
2020-03-25 04:00:09 +08:00
|
|
|
if("nvcodec" IN_LIST FEATURES)
|
2020-08-19 03:58:14 +08:00
|
|
|
#Note: the --enable-cuda option does not actually require the cuda sdk or toolset port dependency as ffmpeg uses runtime detection and dynamic loading
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-cuda --enable-nvenc --enable-nvdec --enable-cuvid")
|
2020-03-25 04:00:09 +08:00
|
|
|
else()
|
2020-08-19 03:58:14 +08:00
|
|
|
set(OPTIONS "${OPTIONS} --disable-cuda --disable-nvenc --disable-nvdec --disable-cuvid")
|
2020-03-25 04:00:09 +08:00
|
|
|
endif()
|
|
|
|
|
2020-08-19 03:58:14 +08:00
|
|
|
set(ENABLE_OPENCL OFF)
|
|
|
|
if("opencl" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-opencl")
|
|
|
|
set(ENABLE_OPENCL ${STATIC_LINKAGE})
|
2020-06-24 04:40:35 +08:00
|
|
|
else()
|
2020-08-19 03:58:14 +08:00
|
|
|
set(OPTIONS "${OPTIONS} --disable-opencl")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_OPENSSL OFF)
|
|
|
|
if("openssl" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-openssl")
|
|
|
|
set(ENABLE_OPENSSL ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-openssl")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_OPUS OFF)
|
|
|
|
if("opus" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libopus")
|
|
|
|
set(ENABLE_OPUS ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libopus")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_SDL2 OFF)
|
|
|
|
if("sdl2" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-sdl2")
|
|
|
|
set(ENABLE_SDL2 ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-sdl2")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_SNAPPY OFF)
|
|
|
|
if("snappy" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libsnappy")
|
|
|
|
set(ENABLE_SNAPPY ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libsnappy")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_SOXR OFF)
|
|
|
|
if("soxr" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libsoxr")
|
|
|
|
set(ENABLE_SOXR ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libsoxr")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_SPEEX OFF)
|
|
|
|
if("speex" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libspeex")
|
|
|
|
set(ENABLE_SPEEX ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libspeex")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_THEORA OFF)
|
|
|
|
if("theora" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libtheora")
|
|
|
|
set(ENABLE_THEORA ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libtheora")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_VORBIS OFF)
|
|
|
|
if("vorbis" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libvorbis")
|
|
|
|
set(ENABLE_VORBIS ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libvorbis")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_VPX OFF)
|
|
|
|
if("vpx" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libvpx")
|
|
|
|
set(ENABLE_VPX ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libvpx")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_WAVPACK OFF)
|
|
|
|
if("wavpack" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libwavpack")
|
|
|
|
set(ENABLE_WAVPACK ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libwavpack")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_X264 OFF)
|
|
|
|
if("x264" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libx264")
|
|
|
|
set(ENABLE_X264 ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libx264")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_X265 OFF)
|
|
|
|
if("x265" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-libx265")
|
|
|
|
set(ENABLE_X265 ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-libx265")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
set(ENABLE_ZLIB OFF)
|
|
|
|
if("zlib" IN_LIST FEATURES)
|
|
|
|
set(OPTIONS "${OPTIONS} --enable-zlib")
|
|
|
|
set(ENABLE_ZLIB ${STATIC_LINKAGE})
|
|
|
|
else()
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-zlib")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if (VCPKG_TARGET_IS_OSX)
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-vdpau") # disable vdpau in OSX
|
2020-06-24 04:40:35 +08:00
|
|
|
endif()
|
|
|
|
|
2019-06-07 07:04:28 +08:00
|
|
|
set(OPTIONS_CROSS "")
|
|
|
|
|
|
|
|
if (VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" OR VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
2020-09-15 07:06:48 +08:00
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
|
|
|
set(OPTIONS_CROSS " --enable-cross-compile --target-os=win32 --arch=${VCPKG_TARGET_ARCHITECTURE}")
|
|
|
|
vcpkg_find_acquire_program(GASPREPROCESSOR)
|
|
|
|
foreach(GAS_PATH ${GASPREPROCESSOR})
|
|
|
|
get_filename_component(GAS_ITEM_PATH ${GAS_PATH} DIRECTORY)
|
|
|
|
set(ENV{PATH} "$ENV{PATH}${VCPKG_HOST_PATH_SEPARATOR}${GAS_ITEM_PATH}")
|
|
|
|
endforeach(GAS_PATH)
|
|
|
|
endif()
|
2019-06-07 07:04:28 +08:00
|
|
|
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
|
|
|
elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unsupported architecture")
|
|
|
|
endif()
|
|
|
|
|
2020-03-28 11:34:59 +08:00
|
|
|
if(VCPKG_TARGET_IS_UWP)
|
2017-11-05 05:54:12 +08:00
|
|
|
set(ENV{LIBPATH} "$ENV{LIBPATH};$ENV{_WKITS10}references\\windows.foundation.foundationcontract\\2.0.0.0\\;$ENV{_WKITS10}references\\windows.foundation.universalapicontract\\3.0.0.0\\")
|
2019-06-07 07:04:28 +08:00
|
|
|
set(OPTIONS "${OPTIONS} --disable-programs")
|
2017-06-18 02:30:03 +08:00
|
|
|
set(OPTIONS "${OPTIONS} --extra-cflags=-DWINAPI_FAMILY=WINAPI_FAMILY_APP --extra-cflags=-D_WIN32_WINNT=0x0A00")
|
2019-06-07 07:04:28 +08:00
|
|
|
set(OPTIONS_CROSS " --enable-cross-compile --target-os=win32 --arch=${VCPKG_TARGET_ARCHITECTURE}")
|
2017-06-18 02:30:03 +08:00
|
|
|
endif()
|
|
|
|
|
2019-09-24 04:46:16 +08:00
|
|
|
set(OPTIONS_DEBUG "--debug") # Note: --disable-optimizations can't be used due to http://ffmpeg.org/pipermail/libav-user/2013-March/003945.html
|
2017-06-20 16:08:04 +08:00
|
|
|
set(OPTIONS_RELEASE "")
|
2017-03-02 23:29:00 +08:00
|
|
|
|
2019-06-07 07:04:28 +08:00
|
|
|
set(OPTIONS "${OPTIONS} ${OPTIONS_CROSS}")
|
2017-11-05 05:54:12 +08:00
|
|
|
|
2017-03-02 23:29:00 +08:00
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
|
|
set(OPTIONS "${OPTIONS} --disable-static --enable-shared")
|
2020-03-28 11:34:59 +08:00
|
|
|
if (VCPKG_TARGET_IS_UWP)
|
2017-06-18 02:30:03 +08:00
|
|
|
set(OPTIONS "${OPTIONS} --extra-ldflags=-APPCONTAINER --extra-ldflags=WindowsApp.lib")
|
|
|
|
endif()
|
2017-03-02 23:29:00 +08:00
|
|
|
endif()
|
|
|
|
|
2019-08-07 04:25:50 +08:00
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
2019-09-24 04:46:16 +08:00
|
|
|
set(OPTIONS "${OPTIONS} --extra-cflags=-DHAVE_UNISTD_H=0")
|
2019-04-05 13:32:10 +08:00
|
|
|
if(VCPKG_CRT_LINKAGE STREQUAL "dynamic")
|
2019-09-24 04:46:16 +08:00
|
|
|
set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MDd --extra-cxxflags=-MDd")
|
2019-04-05 13:32:10 +08:00
|
|
|
set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MD --extra-cxxflags=-MD")
|
|
|
|
else()
|
2019-09-24 04:46:16 +08:00
|
|
|
set(OPTIONS_DEBUG "${OPTIONS_DEBUG} --extra-cflags=-MTd --extra-cxxflags=-MTd")
|
2019-04-05 13:32:10 +08:00
|
|
|
set(OPTIONS_RELEASE "${OPTIONS_RELEASE} --extra-cflags=-MT --extra-cxxflags=-MT")
|
|
|
|
endif()
|
2017-03-02 23:29:00 +08:00
|
|
|
endif()
|
|
|
|
|
2020-08-19 03:58:14 +08:00
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
|
|
|
set(OPTIONS "${OPTIONS} --pkg-config-flags=--static")
|
|
|
|
endif()
|
|
|
|
|
2019-06-01 07:25:56 +08:00
|
|
|
set(ENV_LIB_PATH "$ENV{${LIB_PATH_VAR}}")
|
2017-03-02 23:29:00 +08:00
|
|
|
|
2019-09-24 04:46:16 +08:00
|
|
|
message(STATUS "Building Options: ${OPTIONS}")
|
|
|
|
|
2019-12-22 06:04:38 +08:00
|
|
|
# Release build
|
2019-08-07 04:25:50 +08:00
|
|
|
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release)
|
2019-12-22 06:04:38 +08:00
|
|
|
message(STATUS "Building Release Options: ${OPTIONS_RELEASE}")
|
2020-09-01 13:36:25 +08:00
|
|
|
set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/lib${VCPKG_HOST_PATH_SEPARATOR}${ENV_LIB_PATH}")
|
2019-10-14 19:03:01 +08:00
|
|
|
set(ENV{CFLAGS} "${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_RELEASE}")
|
|
|
|
set(ENV{LDFLAGS} "${VCPKG_LINKER_FLAGS}")
|
2020-08-19 03:58:14 +08:00
|
|
|
set(ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/lib/pkgconfig")
|
2019-08-07 04:25:50 +08:00
|
|
|
message(STATUS "Building ${_csc_PROJECT_PATH} for Release")
|
|
|
|
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
|
2020-09-01 08:14:14 +08:00
|
|
|
|
|
|
|
set(BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
|
|
|
|
set(CONFIGURE_OPTIONS "${OPTIONS} ${OPTIONS_RELEASE}")
|
|
|
|
set(INST_PREFIX "${CURRENT_PACKAGES_DIR}")
|
|
|
|
|
|
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/build.sh.in" "${BUILD_DIR}/build.sh" @ONLY)
|
|
|
|
|
2019-08-07 04:25:50 +08:00
|
|
|
vcpkg_execute_required_process(
|
2020-09-01 08:14:14 +08:00
|
|
|
COMMAND ${SHELL} ./build.sh
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR}
|
2019-08-07 04:25:50 +08:00
|
|
|
LOGNAME build-${TARGET_TRIPLET}-rel
|
|
|
|
)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
# Debug build
|
|
|
|
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug)
|
|
|
|
message(STATUS "Building Debug Options: ${OPTIONS_DEBUG}")
|
2020-09-01 13:36:25 +08:00
|
|
|
set(ENV{${LIB_PATH_VAR}} "${CURRENT_INSTALLED_DIR}/debug/lib${VCPKG_HOST_PATH_SEPARATOR}${ENV_LIB_PATH}")
|
2019-10-14 19:03:01 +08:00
|
|
|
set(ENV{CFLAGS} "${VCPKG_C_FLAGS} ${VCPKG_C_FLAGS_DEBUG}")
|
|
|
|
set(ENV{LDFLAGS} "${VCPKG_LINKER_FLAGS}")
|
2020-08-19 03:58:14 +08:00
|
|
|
set(ENV{PKG_CONFIG_PATH} "${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig")
|
2019-08-07 04:25:50 +08:00
|
|
|
message(STATUS "Building ${_csc_PROJECT_PATH} for Debug")
|
|
|
|
file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
|
2020-09-01 08:14:14 +08:00
|
|
|
|
|
|
|
set(BUILD_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
|
|
|
|
set(CONFIGURE_OPTIONS "${OPTIONS} ${OPTIONS_DEBUG}")
|
|
|
|
set(INST_PREFIX "${CURRENT_PACKAGES_DIR}/debug")
|
|
|
|
|
|
|
|
configure_file("${CMAKE_CURRENT_LIST_DIR}/build.sh.in" "${BUILD_DIR}/build.sh" @ONLY)
|
|
|
|
|
2019-08-07 04:25:50 +08:00
|
|
|
vcpkg_execute_required_process(
|
2020-09-01 08:14:14 +08:00
|
|
|
COMMAND ${SHELL} ./build.sh
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR}
|
2019-08-07 04:25:50 +08:00
|
|
|
LOGNAME build-${TARGET_TRIPLET}-dbg
|
|
|
|
)
|
|
|
|
endif()
|
2017-03-02 23:29:00 +08:00
|
|
|
|
2020-09-01 13:36:25 +08:00
|
|
|
if(VCPKG_TARGET_IS_WINDOWS)
|
|
|
|
file(GLOB DEF_FILES ${CURRENT_PACKAGES_DIR}/lib/*.def ${CURRENT_PACKAGES_DIR}/debug/lib/*.def)
|
|
|
|
|
|
|
|
if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
|
|
|
|
set(LIB_MACHINE_ARG /machine:ARM)
|
|
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
|
|
|
|
set(LIB_MACHINE_ARG /machine:ARM64)
|
|
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
|
|
|
|
set(LIB_MACHINE_ARG /machine:x86)
|
|
|
|
elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
|
|
|
set(LIB_MACHINE_ARG /machine:x64)
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Unsupported target architecture")
|
|
|
|
endif()
|
2017-03-02 23:29:00 +08:00
|
|
|
|
2020-09-01 13:36:25 +08:00
|
|
|
foreach(DEF_FILE ${DEF_FILES})
|
|
|
|
get_filename_component(DEF_FILE_DIR "${DEF_FILE}" DIRECTORY)
|
|
|
|
get_filename_component(DEF_FILE_NAME "${DEF_FILE}" NAME)
|
|
|
|
string(REGEX REPLACE "-[0-9]*\\.def" "${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX}" OUT_FILE_NAME "${DEF_FILE_NAME}")
|
|
|
|
file(TO_NATIVE_PATH "${DEF_FILE}" DEF_FILE_NATIVE)
|
|
|
|
file(TO_NATIVE_PATH "${DEF_FILE_DIR}/${OUT_FILE_NAME}" OUT_FILE_NATIVE)
|
|
|
|
message(STATUS "Generating ${OUT_FILE_NATIVE}")
|
|
|
|
vcpkg_execute_required_process(
|
|
|
|
COMMAND lib.exe /def:${DEF_FILE_NATIVE} /out:${OUT_FILE_NATIVE} ${LIB_MACHINE_ARG}
|
|
|
|
WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}
|
|
|
|
LOGNAME libconvert-${TARGET_TRIPLET}
|
|
|
|
)
|
|
|
|
endforeach()
|
|
|
|
|
|
|
|
# Handle tools
|
2020-03-28 10:40:10 +08:00
|
|
|
file(GLOB EXP_FILES ${CURRENT_PACKAGES_DIR}/lib/*.exp ${CURRENT_PACKAGES_DIR}/debug/lib/*.exp)
|
|
|
|
file(GLOB LIB_FILES ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX} ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_STATIC_LIBRARY_SUFFIX})
|
|
|
|
file(GLOB EXE_FILES_REL ${CURRENT_PACKAGES_DIR}/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX})
|
|
|
|
file(GLOB EXE_FILES_DBG ${CURRENT_PACKAGES_DIR}/debug/bin/*${VCPKG_TARGET_EXECUTABLE_SUFFIX})
|
|
|
|
set(FILES_TO_REMOVE ${EXP_FILES} ${LIB_FILES} ${DEF_FILES} ${EXE_FILES_REL} ${EXE_FILES_DBG})
|
|
|
|
|
|
|
|
if(FILES_TO_REMOVE)
|
|
|
|
if (EXE_FILES_REL)
|
2020-07-08 04:58:29 +08:00
|
|
|
file(INSTALL ${EXE_FILES_REL} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
|
|
|
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
2020-03-28 10:40:10 +08:00
|
|
|
endif()
|
|
|
|
if (EXE_FILES_DBG)
|
2020-07-08 04:58:29 +08:00
|
|
|
file(INSTALL ${EXE_FILES_DBG} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/${PORT})
|
|
|
|
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/debug/tools/${PORT})
|
2020-03-28 10:40:10 +08:00
|
|
|
endif()
|
|
|
|
file(REMOVE ${FILES_TO_REMOVE})
|
|
|
|
endif()
|
2017-03-03 00:26:39 +08:00
|
|
|
endif()
|
2020-03-28 10:40:10 +08:00
|
|
|
|
2017-03-02 23:29:00 +08:00
|
|
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
|
|
|
|
2020-03-19 15:28:10 +08:00
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
|
|
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
|
|
|
|
endif()
|
|
|
|
|
2017-03-02 23:29:00 +08:00
|
|
|
vcpkg_copy_pdbs()
|
|
|
|
|
|
|
|
# Handle copyright
|
2019-12-24 07:37:41 +08:00
|
|
|
file(STRINGS ${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-out.log LICENSE_STRING REGEX "License: .*" LIMIT_COUNT 1)
|
2020-09-01 13:36:25 +08:00
|
|
|
if(LICENSE_STRING STREQUAL "License: LGPL version 2.1 or later")
|
2019-12-24 07:37:41 +08:00
|
|
|
set(LICENSE_FILE "COPYING.LGPLv2.1")
|
2020-09-01 13:36:25 +08:00
|
|
|
elseif(LICENSE_STRING STREQUAL "License: LGPL version 3 or later")
|
2019-12-24 07:37:41 +08:00
|
|
|
set(LICENSE_FILE "COPYING.LGPLv3")
|
2020-09-01 13:36:25 +08:00
|
|
|
elseif(LICENSE_STRING STREQUAL "License: GPL version 2 or later")
|
2019-12-24 07:37:41 +08:00
|
|
|
set(LICENSE_FILE "COPYING.GPLv2")
|
2020-09-01 13:36:25 +08:00
|
|
|
elseif(LICENSE_STRING STREQUAL "License: GPL version 3 or later")
|
2019-12-24 07:37:41 +08:00
|
|
|
set(LICENSE_FILE "COPYING.GPLv3")
|
2020-09-01 13:36:25 +08:00
|
|
|
elseif(LICENSE_STRING STREQUAL "License: nonfree and unredistributable")
|
2019-12-24 07:37:41 +08:00
|
|
|
set(LICENSE_FILE "COPYING.NONFREE")
|
|
|
|
file(WRITE ${SOURCE_PATH}/${LICENSE_FILE} ${LICENSE_STRING})
|
|
|
|
else()
|
|
|
|
message(FATAL_ERROR "Failed to identify license (${LICENSE_STRING})")
|
|
|
|
endif()
|
2018-02-22 08:39:48 +08:00
|
|
|
|
2019-09-24 04:46:16 +08:00
|
|
|
configure_file(${CMAKE_CURRENT_LIST_DIR}/FindFFMPEG.cmake.in ${CURRENT_PACKAGES_DIR}/share/${PORT}/FindFFMPEG.cmake @ONLY)
|
[many ports] improvements for linux/wsl (#6730)
* [many ports] improve compatibility with WSL and mixed case filesystems
* [treehopper] express dependency on libusb, which was not working on non-win32 platforms and is still broken there
* [libharu] add compatibility with non-win32 platforms
* [geogram] fix openblas on linux
[clapack] better integration with linux environment
[visit-struct] put cmake config file in the expected folder
[geogram] remove trailing underscore to enable compatibility with OpenBLAS
* [openblas] playing with underscore, without success
* [openblas/lapack] fix library integration
* [clapack] improve target handling in cmake module
* [openblas] promote self-generated config to default cmake module, otherwise internal ones thinks wrongly that openblas can also solve lapack libs
* [clapack,openblas] improve libraries integration
* [many ports] fix cmake unnecessary target paths, wrong config paths, empty default dependencies, unnecessary [core] tags
* [suitesparse] improve integration with new lapack/openblas mechanism
* [suitesparse] add no underscore postfix also for linux
* [ceres] fix integration with newer openblas/lapack configs
* [aws-c-event-stream] fix regression
* [systemc] fix regression
* [libwebp,geogram] trigger rebuild
* [libwebp,pthread4w] fix regressions
* [glbinding] fix cmake module installation
* [globjects] disentangle unnecessary dependency from qt5
* [jasper] remove broken and unnecessary patches
* [libwebp] fix regression
* [many ports] avoid using BUILD_SHARED_LIBS which is uninitialized in port files
* [clapack] correctly find dlls
* [clapack] use a generic blas as dependency
* [fizz,g2o] restore expected version
* fix mistake
* [many ports] remove WIN32, APPLE and UNIX (again, they keep creeping in) from ports since they are broken and usually break non-win32 ports
* [libressl,openssl] do not try to build one if the other is already installed
* [itk] update ref and patch to avoid regression
* [libressl,openssl] implement full strategy to fix CI
* [libwebp] disable components that are broken on macOS
* [ogre] enable macOS build
* [freeimage,jxrlib,ogre,openexr,protobuf] port patches from #5169
* [ogre] add missing install command
* [ffmpeg] enable wrapper for cmake module
* [ffmpeg] add avresample module finder
* [ffmpeg] improve module detection and exported symbols
* [ffmpeg] add variables to cache
* [thrift] remove unnecessary build option
* [allegro5] fix shared/static inversion
* [protobuf] cleanup
* [libressl] cleanup
* [moos-core] cleanup
* commented features must not be separated from other features, otherwise vcpkg complains
* [itk] fix regression
* [shogun,itk] fix regressions
* [ogre] fix regression
* [opusfile] add compatibility with non-win32
* [itk] fix regression
* [sndfile,libsndfile] remove duplicate, redirect sndfile to libsndfile
* add missing dependencies
* [ismrmrd] fix regression
* [ffmpeg] trigger rebuild
* [clapack,openblas,libogg] fix regressions on macOS
* [libtins] fix regression
* force rebuild windows regressions, unable to reproduce locally
* [mosquitto] enable non-win32 builds
* [json-dto] force rebuild, unable to reproduce regression locally
* [many ports] uniform naming and path length requests
* fix regression
* fix regression
* [ffmpeg] fixes for downstream projects
* clean up - thanks to reviewers
* trigger rebuild of regressions on macOS
* trigger rebuild of regressions on macOS - part2
* Add core back
* Use VCPKG_CONCURRENCY
* Add core back to suitesparse
* Add core back to curl
* Add core back to magnum
* Add core back to magnum
* Add core back to magnum
* Add core back to cgal
2019-06-21 10:11:54 +08:00
|
|
|
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
|
2020-03-28 10:40:10 +08:00
|
|
|
file(INSTALL ${SOURCE_PATH}/${LICENSE_FILE} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|