aboutsummaryrefslogtreecommitdiff
path: root/ports
diff options
context:
space:
mode:
Diffstat (limited to 'ports')
-rw-r--r--ports/armadillo/CONTROL4
-rw-r--r--ports/arrow/CONTROL2
-rw-r--r--ports/arrow/all.patch11
-rw-r--r--ports/arrow/portfile.cmake4
-rw-r--r--ports/aubio/CMakeLists.txt15
-rw-r--r--ports/aubio/CONTROL3
-rw-r--r--ports/behaviortree-cpp/001_port_fixes.patch13
-rw-r--r--ports/behaviortree-cpp/002_fix_dependencies.patch35
-rw-r--r--ports/behaviortree-cpp/portfile.cmake54
-rw-r--r--ports/behaviortree-cpp/vcpkg.json12
-rw-r--r--ports/berkeleydb/CONTROL3
-rw-r--r--ports/berkeleydb/fix-conflict-macro.patch123
-rw-r--r--ports/berkeleydb/portfile.cmake1
-rw-r--r--ports/bigint/CONTROL3
-rw-r--r--ports/bigint/fix-osx-usage.patch39
-rw-r--r--ports/bigint/portfile.cmake5
-rw-r--r--ports/bigint/usage5
-rw-r--r--ports/bigint/vcpkg-cmake-wrapper.cmake10
-rw-r--r--ports/boost-build/CONTROL3
-rw-r--r--ports/boost-modular-build-helper/CONTROL3
-rw-r--r--ports/boost-uninstall/CONTROL4
-rw-r--r--ports/boost-uninstall/portfile.cmake4
-rw-r--r--ports/boost-vcpkg-helpers/CONTROL2
-rw-r--r--ports/boringssl/0002-disable-waring-4065.patch28
-rw-r--r--ports/boringssl/CONTROL2
-rw-r--r--ports/box2d/CONTROL3
-rw-r--r--ports/box2d/portfile.cmake4
-rw-r--r--ports/bzip2/CONTROL3
-rw-r--r--ports/bzip2/fix-windows-include.patch12
-rw-r--r--ports/bzip2/portfile.cmake13
-rw-r--r--ports/ceres/0001_cmakelists_fixes.patch13
-rw-r--r--ports/ceres/0004_blas_linux_fix.patch22
-rw-r--r--ports/ceres/0004_fix_find_eigen.patch122
-rw-r--r--ports/ceres/CONTROL2
-rw-r--r--ports/ceres/portfile.cmake19
-rw-r--r--ports/cli/CONTROL2
-rw-r--r--ports/cli/portfile.cmake8
-rw-r--r--ports/cpp-taskflow/CONTROL2
-rw-r--r--ports/cpp-taskflow/fix-compiler-error.patch31
-rw-r--r--ports/cpp-taskflow/portfile.cmake10
-rw-r--r--ports/cspice/CMakeLists.txt8
-rw-r--r--ports/cspice/CONTROL5
-rw-r--r--ports/cspice/portfile.cmake70
-rw-r--r--ports/directxmesh/CONTROL2
-rw-r--r--ports/directxmesh/portfile.cmake4
-rw-r--r--ports/directxtex/CONTROL2
-rw-r--r--ports/directxtex/portfile.cmake4
-rw-r--r--ports/directxtk/CONTROL2
-rw-r--r--ports/directxtk/portfile.cmake4
-rw-r--r--ports/directxtk12/CONTROL2
-rw-r--r--ports/directxtk12/portfile.cmake4
-rw-r--r--ports/dlib/CONTROL6
-rw-r--r--ports/dlib/portfile.cmake4
-rw-r--r--ports/drogon/CONTROL4
-rw-r--r--ports/drogon/drogon_ctl_install.patch20
-rw-r--r--ports/drogon/portfile.cmake12
-rw-r--r--ports/eigen3/CONTROL2
-rw-r--r--ports/eigen3/portfile.cmake11
-rwxr-xr-xports/embree3/CONTROL1
-rw-r--r--ports/embree3/fix-static-usage.patch21
-rwxr-xr-xports/embree3/portfile.cmake3
-rw-r--r--ports/ensmallen/CONTROL5
-rw-r--r--ports/exiv2/CONTROL5
-rw-r--r--ports/exiv2/expat.patch45
-rw-r--r--ports/exiv2/portfile.cmake6
-rw-r--r--ports/expat/CONTROL4
-rw-r--r--ports/expat/fix-find-package-by-cmake.patch40
-rw-r--r--ports/expat/pkgconfig.patch15
-rw-r--r--ports/expat/portfile.cmake19
-rw-r--r--ports/expat/vcpkg-cmake-wrapper.cmake27
-rw-r--r--ports/ffmpeg/CONTROL2
-rw-r--r--ports/ffmpeg/FindFFMPEG.cmake.in34
-rw-r--r--ports/fluidlite/CONTROL4
-rw-r--r--ports/fluidlite/portfile.cmake31
-rw-r--r--ports/fontconfig/CMakeLists.txt6
-rw-r--r--ports/fontconfig/CONTROL2
-rw-r--r--ports/freetype/CONTROL2
-rw-r--r--ports/freetype/portfile.cmake2
-rw-r--r--ports/gdal/portfile.cmake15
-rw-r--r--ports/gdal/usage5
-rw-r--r--ports/gdal/vcpkg-cmake-wrapper.cmake12
-rw-r--r--ports/gdcm/CONTROL2
-rw-r--r--ports/gdcm/portfile.cmake1
-rw-r--r--ports/gdcm/use-expat-config.patch13
-rw-r--r--ports/geogram/CONTROL3
-rw-r--r--ports/grpc/00001-fix-uwp.patch20
-rw-r--r--ports/grpc/00002-static-linking-in-linux.patch12
-rw-r--r--ports/grpc/00003-undef-base64-macro.patch2
-rw-r--r--ports/grpc/00004-link-gdi32-on-windows.patch6
-rw-r--r--ports/grpc/00005-fix-uwp-error.patch21
-rw-r--r--ports/grpc/00009-use-system-upb.patch34
-rw-r--r--ports/grpc/00010-add-feature-absl-sync.patch8
-rw-r--r--ports/grpc/00011-fix-csharp_plugin.patch8
-rw-r--r--ports/grpc/CONTROL5
-rw-r--r--ports/grpc/portfile.cmake24
-rw-r--r--ports/grpc/snprintf.patch24
-rw-r--r--ports/icu/CONTROL2
-rw-r--r--ports/icu/portfile.cmake12
-rw-r--r--ports/imgui-sfml/CONTROL4
-rw-r--r--ports/imgui-sfml/portfile.cmake14
-rw-r--r--ports/imgui/CONTROL7
-rw-r--r--ports/imgui/portfile.cmake19
-rw-r--r--ports/irrlicht/fix-sysctl.patch12
-rw-r--r--ports/irrlicht/portfile.cmake4
-rw-r--r--ports/itk/CONTROL2
-rw-r--r--ports/itk/expat.patch54
-rw-r--r--ports/itk/portfile.cmake1
-rw-r--r--ports/josuttis-jthread/CONTROL1
-rw-r--r--ports/josuttis-jthread/portfile.cmake2
-rw-r--r--ports/lapack-reference/CONTROL1
-rw-r--r--ports/lapack-reference/FindLAPACK.cmake2
-rw-r--r--ports/lapack-reference/portfile.cmake19
-rw-r--r--ports/lapack/CONTROL4
-rw-r--r--ports/lapack/clapack/FindLAPACK.cmake701
-rw-r--r--ports/lapack/clapack/vcpkg-cmake-wrapper.cmake10
-rw-r--r--ports/libfreenect2/CONTROL3
-rw-r--r--ports/libfreenect2/fix-dependency-libusb.patch31
-rw-r--r--ports/libfreenect2/portfile.cmake13
-rw-r--r--ports/libigl/CONTROL4
-rw-r--r--ports/libigl/fix-dependency.patch11
-rw-r--r--ports/libigl/fix-imgui-set-cond.patch26
-rw-r--r--ports/libigl/portfile.cmake8
-rw-r--r--ports/libjpeg-turbo/CONTROL2
-rw-r--r--ports/libjpeg-turbo/portfile.cmake9
-rw-r--r--ports/libkml/CONTROL2
-rw-r--r--ports/libkml/fix-expat.patch20
-rw-r--r--ports/libkml/portfile.cmake1
-rw-r--r--ports/libmodplug/CONTROL3
-rw-r--r--ports/libmodplug/portfile.cmake11
-rw-r--r--ports/libsndfile/0001-Improve-UWP-support.patch37
-rw-r--r--ports/libsndfile/CONTROL10
-rw-r--r--ports/libsndfile/fix-install-path.patch31
-rw-r--r--ports/libsndfile/portfile.cmake72
-rw-r--r--ports/libsndfile/uwp-createfile-getfilesize-addendum.patch13
-rw-r--r--ports/libsndfile/uwp-createfile-getfilesize.patch58
-rw-r--r--ports/libsndfile/vcpkg.json22
-rw-r--r--ports/libtorrent/CONTROL2
-rw-r--r--ports/libtorrent/fix_python_cmake.patch26
-rw-r--r--ports/libtorrent/portfile.cmake4
-rw-r--r--ports/libusb/CONTROL2
-rw-r--r--ports/libusb/portfile.cmake2
-rw-r--r--ports/libusb/usage5
-rw-r--r--ports/libusb/vcpkg-cmake-wrapper.cmake10
-rw-r--r--ports/llvm/0004-fix-dr-1734.patch14
-rw-r--r--ports/llvm/CONTROL3
-rw-r--r--ports/llvm/portfile.cmake1
-rw-r--r--ports/mlpack/CONTROL4
-rw-r--r--ports/mlpack/portfile.cmake56
-rw-r--r--ports/nanogui/CONTROL4
-rw-r--r--ports/nanogui/portfile.cmake15
-rw-r--r--ports/openblas/CONTROL2
-rw-r--r--ports/openblas/FindBLAS.cmake816
-rw-r--r--ports/openblas/fix-pkg-config.patch19
-rw-r--r--ports/openblas/openblas_common.h16
-rw-r--r--ports/openblas/portfile.cmake11
-rw-r--r--ports/openblas/vcpkg-cmake-wrapper.cmake2
-rw-r--r--ports/opencolorio/CONTROL2
-rw-r--r--ports/opencolorio/portfile.cmake8
-rw-r--r--ports/openmama/CONTROL2
-rw-r--r--ports/openmama/portfile.cmake93
-rw-r--r--ports/openmvg/CONTROL7
-rw-r--r--ports/openmvg/build_fixes.patch (renamed from ports/openmvg/fixcmake.patch)1144
-rw-r--r--ports/openmvg/fix-config-cmake.patch13
-rw-r--r--ports/openmvg/portfile.cmake128
-rw-r--r--ports/openmvs/CONTROL12
-rw-r--r--ports/openmvs/fix-build.patch408
-rw-r--r--ports/openmvs/portfile.cmake56
-rw-r--r--ports/openssl-unix/CMakeLists.txt18
-rw-r--r--ports/openssl-unix/CONTROL2
-rw-r--r--ports/opus/portfile.cmake9
-rw-r--r--ports/pcl/CONTROL1
-rw-r--r--ports/pcl/fix-check-sse.patch13
-rw-r--r--ports/pcl/portfile.cmake1
-rw-r--r--ports/poco/CONTROL2
-rw-r--r--ports/poco/portfile.cmake1
-rw-r--r--ports/poco/use-vcpkg-expat.patch18
-rw-r--r--ports/portmidi/CONTROL4
-rw-r--r--ports/portmidi/portfile.cmake12
-rw-r--r--ports/protobuf/CONTROL5
-rw-r--r--ports/protobuf/fix-uwp.patch4
-rw-r--r--ports/protobuf/portfile.cmake4
-rw-r--r--ports/rapidcheck/CONTROL2
-rw-r--r--ports/rapidcheck/fix-addiosfwd.patch12
-rw-r--r--ports/rapidcheck/portfile.cmake5
-rw-r--r--ports/re2/CONTROL2
-rw-r--r--ports/re2/portfile.cmake4
-rw-r--r--ports/restinio/CONTROL2
-rw-r--r--ports/restinio/portfile.cmake4
-rw-r--r--ports/rpclib/CONTROL3
-rw-r--r--ports/rpclib/portfile.cmake6
-rw-r--r--ports/sfml/CONTROL2
-rw-r--r--ports/sfml/portfile.cmake4
-rw-r--r--ports/shogun/CONTROL5
-rw-r--r--ports/shogun/portfile.cmake11
-rw-r--r--ports/skia/CONTROL2
-rw-r--r--ports/skia/add-missing-tuple.patch12
-rw-r--r--ports/skia/portfile.cmake1
-rw-r--r--ports/sqlitecpp/CONTROL2
-rw-r--r--ports/sqlitecpp/fix_dependency.patch11
-rw-r--r--ports/sqlitecpp/portfile.cmake1
-rw-r--r--ports/suitesparse/CONTROL11
-rw-r--r--ports/suitesparse/FindCXSparse.cmake75
-rw-r--r--ports/suitesparse/add-find-package-metis.patch46
-rw-r--r--ports/suitesparse/build_fixes.patch281
-rw-r--r--ports/suitesparse/portfile.cmake49
-rw-r--r--ports/suitesparse/suitesparse.patch151
-rw-r--r--ports/suitesparse/vcpkg-cmake-wrapper_cxsparse.cmake10
-rw-r--r--ports/tcl/CONTROL1
-rw-r--r--ports/tcl/force-shell-install.patch27
-rw-r--r--ports/tcl/portfile.cmake35
-rw-r--r--ports/theia/CONTROL3
-rw-r--r--ports/theia/fix-external-dependencies.patch57
-rw-r--r--ports/theia/portfile.cmake7
-rw-r--r--ports/upb/CONTROL2
-rw-r--r--ports/upb/add-cmake-install.patch25
-rw-r--r--ports/upb/fix-uwp.patch19
-rw-r--r--ports/upb/portfile.cmake4
-rw-r--r--ports/v8/3f8dc4b.patch155
-rw-r--r--ports/v8/CONTROL6
-rw-r--r--ports/v8/build.patch179
-rw-r--r--ports/v8/icu.gn71
-rw-r--r--ports/v8/portfile.cmake186
-rw-r--r--ports/v8/v8.patch89
-rw-r--r--ports/v8/v8.pc.in11
-rw-r--r--ports/v8/v8_libbase.pc.in10
-rw-r--r--ports/v8/v8_libplatform.pc.in10
-rw-r--r--ports/v8/v8_monolith.pc.in11
-rw-r--r--ports/v8/zlib.gn21
-rw-r--r--ports/vlfeat/CMakeLists.txt159
-rw-r--r--ports/vlfeat/CONTROL4
-rw-r--r--ports/vlfeat/expose_missing_symbols.patch79
-rw-r--r--ports/vlfeat/portfile.cmake33
-rw-r--r--ports/vtk/CONTROL2
-rw-r--r--ports/vtk/FindExpat.patch61
-rw-r--r--ports/vtk/portfile.cmake9
-rw-r--r--ports/wt/0003-disable-boost-autolink.patch13
-rw-r--r--ports/wt/0004-link-ssl.patch30
-rw-r--r--ports/wt/0006-GraphicsMagick.patch29
-rw-r--r--ports/wt/CONTROL28
-rw-r--r--ports/wt/portfile.cmake58
-rw-r--r--ports/wxwidgets/CONTROL2
-rw-r--r--ports/wxwidgets/fix-expat.patch24
-rw-r--r--ports/wxwidgets/portfile.cmake1
-rw-r--r--ports/x265/CONTROL5
-rw-r--r--ports/x265/portfile.cmake26
-rw-r--r--ports/zxing-cpp/0003-fix-dependency-bigint.patch50
-rw-r--r--ports/zxing-cpp/CONTROL4
-rw-r--r--ports/zxing-cpp/portfile.cmake3
248 files changed, 4740 insertions, 3071 deletions
diff --git a/ports/armadillo/CONTROL b/ports/armadillo/CONTROL
index c266b9112..850809579 100644
--- a/ports/armadillo/CONTROL
+++ b/ports/armadillo/CONTROL
@@ -1,5 +1,5 @@
Source: armadillo
Version: 2019-04-16
-Port-Version: 9
+Port-Version: 10
Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use
-Build-Depends: openblas (!osx), lapack
+Build-Depends: openblas, lapack
diff --git a/ports/arrow/CONTROL b/ports/arrow/CONTROL
index dc7ea8c81..f8bb9cbd6 100644
--- a/ports/arrow/CONTROL
+++ b/ports/arrow/CONTROL
@@ -1,5 +1,5 @@
Source: arrow
-Version: 1.0.0
+Version: 1.0.1
Build-Depends: boost-system, boost-filesystem, boost-multiprecision, boost-algorithm, flatbuffers, rapidjson, zlib, lz4, brotli, bzip2, zstd, snappy, gflags, thrift, double-conversion, glog, uriparser, openssl, utf8proc
Homepage: https://github.com/apache/arrow
Description: Apache Arrow is a columnar in-memory analytics layer designed to accelerate big data. It houses a set of canonical in-memory representations of flat and hierarchical data along with multiple language-bindings for structure manipulation. It also provides IPC and common algorithm implementations.
diff --git a/ports/arrow/all.patch b/ports/arrow/all.patch
index a566e2a05..65260b148 100644
--- a/ports/arrow/all.patch
+++ b/ports/arrow/all.patch
@@ -26,7 +26,7 @@ index bf47915c4..053e605a0 100644
# Some systems (e.g. Fedora) don't fill Brotli_LIBRARY_DIRS, so add the other dirs here.
diff --git a/cpp/cmake_modules/FindLz4.cmake b/cpp/cmake_modules/FindLz4.cmake
-index 841091643..a196b251d 100644
+index 841091643..bb5a00a50 100644
--- a/cpp/cmake_modules/FindLz4.cmake
+++ b/cpp/cmake_modules/FindLz4.cmake
@@ -19,14 +19,16 @@ if(MSVC AND NOT DEFINED LZ4_MSVC_STATIC_LIB_SUFFIX)
@@ -49,7 +49,14 @@ index 841091643..a196b251d 100644
"${CMAKE_SHARED_LIBRARY_PREFIX}lz4_static${CMAKE_SHARED_LIBRARY_SUFFIX}"
PATHS ${LZ4_ROOT}
PATH_SUFFIXES ${LIB_PATH_SUFFIXES}
-@@ -43,14 +45,14 @@ else()
+@@ -38,19 +40,19 @@ if(LZ4_ROOT)
+ PATH_SUFFIXES ${INCLUDE_PATH_SUFFIXES})
+
+ else()
+- pkg_check_modules(LZ4_PC liblz4)
+- if(LZ4_PC_FOUND)
++ #pkg_check_modules(LZ4_PC liblz4)
++ if(0) #if(LZ4_PC_FOUND) # Disabled as sometimes incompatible with vcpkg on Linux and OSX
set(LZ4_INCLUDE_DIR "${LZ4_PC_INCLUDEDIR}")
list(APPEND LZ4_PC_LIBRARY_DIRS "${LZ4_PC_LIBDIR}")
diff --git a/ports/arrow/portfile.cmake b/ports/arrow/portfile.cmake
index dcb1d9664..5e2f87f0b 100644
--- a/ports/arrow/portfile.cmake
+++ b/ports/arrow/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_fail_port_install(ON_ARCH "x86" "arm" "arm64")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO apache/arrow
- REF apache-arrow-1.0.0
- SHA512 cfbe22a7987658cce15f83c3be50435567f2b8156fa50007ae103418b969c6075dbf2858c25787a40feb391e84075905dd045300beb7fcedf4344823f8c4be20
+ REF apache-arrow-1.0.1
+ SHA512 46fedecaf7fa0ff0d8b4ac5f3d7bcbcb75ce4f65d272f775dedd61f091f975cf03fc55e91e46021df9872a82712ca9c9e4eb35414cf46c0f49a26f7a5a3dd50c
HEAD_REF master
PATCHES
all.patch
diff --git a/ports/aubio/CMakeLists.txt b/ports/aubio/CMakeLists.txt
index 9a6ad2377..ad8ce6a46 100644
--- a/ports/aubio/CMakeLists.txt
+++ b/ports/aubio/CMakeLists.txt
@@ -24,33 +24,24 @@ set(CMAKE_DEBUG_POSTFIX d)
option(BUILD_TOOLS "Build and install tools" ON)
set(TOOLS_INSTALLDIR "bin" CACHE STRING "Target directory for installed tools")
-find_path(LIBSNDFILE_H sndfile.h)
-find_library(LIBSNDFILE_LIB NAMES libsndfile-1 libsndfile)
find_library(AVCODEC_LIB avcodec)
find_library(AVUTIL_LIB avutil)
find_library(AVDEVICE_LIB avdevice)
find_library(AVFILTER_LIB avfilter)
find_library(AVFORMAT_LIB avformat)
find_library(SWRESAMPLE_LIB swresample)
-find_library(OGG_LIB ogg)
-find_library(FLAC_LIB flac)
-find_library(VORBIS_LIB vorbis)
-find_library(VORBISENC_LIB vorbisenc)
find_package(BZip2 REQUIRED)
find_package(LibLZMA REQUIRED)
+find_package(SndFile REQUIRED)
-include_directories(src ${LIBSNDFILE_H} ${LIBLZMA_INCLUDE_DIRS})
+include_directories(src ${LIBLZMA_INCLUDE_DIRS})
file(GLOB_RECURSE SOURCES src/*.c)
set_source_files_properties(src/io/sink_wavwrite.c PROPERTIES COMPILE_FLAGS /FIWinsock2.h)
add_library(aubio ${SOURCES})
target_link_libraries(aubio PUBLIC
- ${LIBSNDFILE_LIB}
- ${OGG_LIB}
- ${FLAC_LIB}
- ${VORBIS_LIB}
- ${VORBISENC_LIB}
+ SndFile::sndfile
${AVCODEC_LIB}
${AVUTIL_LIB}
${AVDEVICE_LIB}
diff --git a/ports/aubio/CONTROL b/ports/aubio/CONTROL
index 2c5a18e48..f023b702e 100644
--- a/ports/aubio/CONTROL
+++ b/ports/aubio/CONTROL
@@ -1,5 +1,6 @@
Source: aubio
-Version: 0.4.9-1
+Version: 0.4.9
+Port-Version: 2
Homepage: https://github.com/aubio/aubio
Description: Aubio is a tool designed for the extraction of annotations from audio signals. Its features include segmenting a sound file before each of its attacks, performing pitch detection, tapping the beat and producing midi streams from live audio.
Build-Depends: ffmpeg, libsndfile, libogg, libflac, libvorbis, bzip2, liblzma
diff --git a/ports/behaviortree-cpp/001_port_fixes.patch b/ports/behaviortree-cpp/001_port_fixes.patch
new file mode 100644
index 000000000..3cb4ac29e
--- /dev/null
+++ b/ports/behaviortree-cpp/001_port_fixes.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 75dea11..4eea781 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -229,7 +229,7 @@ if( ZMQ_FOUND )
+ endif()
+
+ if(MSVC)
+- target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /WX)
++ target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE /W4 /wd4702)
+ else()
+ target_compile_options(${BEHAVIOR_TREE_LIBRARY} PRIVATE
+ -Wall -Wextra -Werror=return-type)
diff --git a/ports/behaviortree-cpp/002_fix_dependencies.patch b/ports/behaviortree-cpp/002_fix_dependencies.patch
new file mode 100644
index 000000000..76d7857db
--- /dev/null
+++ b/ports/behaviortree-cpp/002_fix_dependencies.patch
@@ -0,0 +1,35 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 75dea11..23053ca 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,7 +14,7 @@ if(MSVC)
+ endif()
+
+ #---- Include boost to add coroutines ----
+-find_package(Boost COMPONENTS coroutine QUIET)
++find_package(Boost REQUIRED) # coroutine2 is header-only
+ if(Boost_FOUND)
+ include_directories(${Boost_INCLUDE_DIRS})
+ string(REPLACE "." "0" Boost_VERSION_NODOT ${Boost_VERSION})
+@@ -45,18 +45,18 @@ option(BUILD_SHARED_LIBS "Build shared libraries" ON)
+
+ #---- Find other packages ----
+ find_package(Threads)
+-find_package(ZMQ)
++find_package(cppzmq)
+
+ list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${CMAKE_DL_LIBS}
+ ${Boost_LIBRARIES} )
+
+-if( ZMQ_FOUND )
++if( ZMQ_FOUND OR ON )
+ message(STATUS "ZeroMQ found.")
+ add_definitions( -DZMQ_FOUND )
+ list(APPEND BT_SOURCE src/loggers/bt_zmq_publisher.cpp)
+- list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES ${ZMQ_LIBRARIES})
++ list(APPEND BEHAVIOR_TREE_EXTERNAL_LIBRARIES cppzmq)
+ else()
+ message(WARNING "ZeroMQ NOT found. Skipping the build of [PublisherZMQ] and [bt_recorder].")
+ endif()
diff --git a/ports/behaviortree-cpp/portfile.cmake b/ports/behaviortree-cpp/portfile.cmake
new file mode 100644
index 000000000..b689ab480
--- /dev/null
+++ b/ports/behaviortree-cpp/portfile.cmake
@@ -0,0 +1,54 @@
+vcpkg_fail_port_install(ON_TARGET "UWP")
+
+vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+
+vcpkg_download_distfile(ARCHIVE
+ URLS "https://github.com/BehaviorTree/BehaviorTree.CPP/archive/3.5.1.tar.gz"
+ FILENAME "BehaviorTree.CPP.3.5.1.tar.gz"
+ SHA512 66db43225e692fa0f9073e63bdff765c037440372478792a9b442103a8bed945f5c3ae1d66266b86cb41d0006404a8297708a799ec0c7286c2beec6f964a4ac6
+)
+
+vcpkg_extract_source_archive_ex(
+ OUT_SOURCE_PATH SOURCE_PATH
+ ARCHIVE ${ARCHIVE}
+ PATCHES
+ 001_port_fixes.patch
+ 002_fix_dependencies.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DBUILD_EXAMPLES=OFF
+ -DBUILD_UNIT_TESTS=OFF
+ -DBUILD_TOOLS=OFF
+)
+
+vcpkg_install_cmake()
+
+vcpkg_copy_pdbs()
+
+set(TOOLS bt3_log_cat bt3_plugin_manifest)
+
+foreach(tool ${TOOLS})
+ set(suffix ${VCPKG_TARGET_EXECUTABLE_SUFFIX})
+ if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/bin/${tool}${suffix}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/debug/bin/${tool}${suffix}")
+ endif()
+ if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/${tool}${suffix}")
+ file(INSTALL "${CURRENT_PACKAGES_DIR}/bin/${tool}${suffix}"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/bin/${tool}${suffix}")
+ endif()
+endforeach()
+
+vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+vcpkg_test_cmake(PACKAGE_NAME BehaviorTreeV3)
diff --git a/ports/behaviortree-cpp/vcpkg.json b/ports/behaviortree-cpp/vcpkg.json
new file mode 100644
index 000000000..97731b09c
--- /dev/null
+++ b/ports/behaviortree-cpp/vcpkg.json
@@ -0,0 +1,12 @@
+{
+ "name": "behaviortree-cpp",
+ "version-string": "3.5.1",
+ "port-version": 1,
+ "description": "Behavior Trees Library in C++.",
+ "homepage": "https://www.behaviortree.dev",
+ "supports": "!uwp & !osx",
+ "dependencies": [
+ "boost-coroutine2",
+ "cppzmq"
+ ]
+}
diff --git a/ports/berkeleydb/CONTROL b/ports/berkeleydb/CONTROL
index 07ab3e306..91677a1f7 100644
--- a/ports/berkeleydb/CONTROL
+++ b/ports/berkeleydb/CONTROL
@@ -1,5 +1,6 @@
Source: berkeleydb
-Version: 4.8.30-4
+Version: 4.8.30
+Port-Version: 5
Homepage: https://download.oracle.com/
Description: BDB - A high-performance embedded database for key/value data.
Supports: !(uwp|linux|osx)
diff --git a/ports/berkeleydb/fix-conflict-macro.patch b/ports/berkeleydb/fix-conflict-macro.patch
new file mode 100644
index 000000000..c15d7edff
--- /dev/null
+++ b/ports/berkeleydb/fix-conflict-macro.patch
@@ -0,0 +1,123 @@
+diff --git a/dbinc/atomic.h b/dbinc/atomic.h
+index 0034dcc..2dd5e03 100644
+--- a/dbinc/atomic.h
++++ b/dbinc/atomic.h
+@@ -70,7 +70,7 @@ typedef struct {
+ * These have no memory barriers; the caller must include them when necessary.
+ */
+ #define atomic_read(p) ((p)->value)
+-#define atomic_init(p, val) ((p)->value = (val))
++#define bdb_atomic_init(p, val) ((p)->value = (val))
+
+ #ifdef HAVE_ATOMIC_SUPPORT
+
+@@ -206,7 +206,7 @@ static inline int __atomic_compare_exchange(
+ #define atomic_dec(env, p) (--(p)->value)
+ #define atomic_compare_exchange(env, p, oldval, newval) \
+ (DB_ASSERT(env, atomic_read(p) == (oldval)), \
+- atomic_init(p, (newval)), 1)
++ bdb_atomic_init(p, (newval)), 1)
+ #else
+ #define atomic_inc(env, p) __atomic_inc(env, p)
+ #define atomic_dec(env, p) __atomic_dec(env, p)
+diff --git a/mp/mp_fget.c b/mp/mp_fget.c
+index 5fdee5a..452ef17 100644
+--- a/mp/mp_fget.c
++++ b/mp/mp_fget.c
+@@ -617,7 +617,7 @@ alloc: /* Allocate a new buffer header and data space. */
+
+ /* Initialize enough so we can call __memp_bhfree. */
+ alloc_bhp->flags = 0;
+- atomic_init(&alloc_bhp->ref, 1);
++ bdb_atomic_init(&alloc_bhp->ref, 1);
+ #ifdef DIAGNOSTIC
+ if ((uintptr_t)alloc_bhp->buf & (sizeof(size_t) - 1)) {
+ __db_errx(env,
+@@ -911,7 +911,7 @@ alloc: /* Allocate a new buffer header and data space. */
+ MVCC_MPROTECT(bhp->buf, mfp->stat.st_pagesize,
+ PROT_READ);
+
+- atomic_init(&alloc_bhp->ref, 1);
++ bdb_atomic_init(&alloc_bhp->ref, 1);
+ MUTEX_LOCK(env, alloc_bhp->mtx_buf);
+ alloc_bhp->priority = bhp->priority;
+ alloc_bhp->pgno = bhp->pgno;
+diff --git a/mp/mp_mvcc.c b/mp/mp_mvcc.c
+index 34467d2..b604388 100644
+--- a/mp/mp_mvcc.c
++++ b/mp/mp_mvcc.c
+@@ -276,7 +276,7 @@ __memp_bh_freeze(dbmp, infop, hp, bhp, need_frozenp)
+ #else
+ memcpy(frozen_bhp, bhp, SSZA(BH, buf));
+ #endif
+- atomic_init(&frozen_bhp->ref, 0);
++ bdb_atomic_init(&frozen_bhp->ref, 0);
+ if (mutex != MUTEX_INVALID)
+ frozen_bhp->mtx_buf = mutex;
+ else if ((ret = __mutex_alloc(env, MTX_MPOOL_BH,
+@@ -428,7 +428,7 @@ __memp_bh_thaw(dbmp, infop, hp, frozen_bhp, alloc_bhp)
+ #endif
+ alloc_bhp->mtx_buf = mutex;
+ MUTEX_LOCK(env, alloc_bhp->mtx_buf);
+- atomic_init(&alloc_bhp->ref, 1);
++ bdb_atomic_init(&alloc_bhp->ref, 1);
+ F_CLR(alloc_bhp, BH_FROZEN);
+ }
+
+diff --git a/mp/mp_region.c b/mp/mp_region.c
+index e6cece9..e3e3382 100644
+--- a/mp/mp_region.c
++++ b/mp/mp_region.c
+@@ -224,7 +224,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
+ MTX_MPOOL_FILE_BUCKET, 0, &htab[i].mtx_hash)) != 0)
+ return (ret);
+ SH_TAILQ_INIT(&htab[i].hash_bucket);
+- atomic_init(&htab[i].hash_page_dirty, 0);
++ bdb_atomic_init(&htab[i].hash_page_dirty, 0);
+ }
+
+ /*
+@@ -269,7 +269,7 @@ __memp_init(env, dbmp, reginfo_off, htab_buckets, max_nreg)
+ hp->mtx_hash = (mtx_base == MUTEX_INVALID) ? MUTEX_INVALID :
+ mtx_base + i;
+ SH_TAILQ_INIT(&hp->hash_bucket);
+- atomic_init(&hp->hash_page_dirty, 0);
++ bdb_atomic_init(&hp->hash_page_dirty, 0);
+ #ifdef HAVE_STATISTICS
+ hp->hash_io_wait = 0;
+ hp->hash_frozen = hp->hash_thawed = hp->hash_frozen_freed = 0;
+diff --git a/mutex/mut_method.c b/mutex/mut_method.c
+index 2588763..56b6723 100644
+--- a/mutex/mut_method.c
++++ b/mutex/mut_method.c
+@@ -426,7 +426,7 @@ atomic_compare_exchange(env, v, oldval, newval)
+ MUTEX_LOCK(env, mtx);
+ ret = atomic_read(v) == oldval;
+ if (ret)
+- atomic_init(v, newval);
++ bdb_atomic_init(v, newval);
+ MUTEX_UNLOCK(env, mtx);
+
+ return (ret);
+diff --git a/mutex/mut_tas.c b/mutex/mut_tas.c
+index f3922e0..934a654 100644
+--- a/mutex/mut_tas.c
++++ b/mutex/mut_tas.c
+@@ -46,7 +46,7 @@ __db_tas_mutex_init(env, mutex, flags)
+
+ #ifdef HAVE_SHARED_LATCHES
+ if (F_ISSET(mutexp, DB_MUTEX_SHARED))
+- atomic_init(&mutexp->sharecount, 0);
++ bdb_atomic_init(&mutexp->sharecount, 0);
+ else
+ #endif
+ if (MUTEX_INIT(&mutexp->tas)) {
+@@ -486,7 +486,7 @@ __db_tas_mutex_unlock(env, mutex)
+ F_CLR(mutexp, DB_MUTEX_LOCKED);
+ /* Flush flag update before zeroing count */
+ MEMBAR_EXIT();
+- atomic_init(&mutexp->sharecount, 0);
++ bdb_atomic_init(&mutexp->sharecount, 0);
+ } else {
+ DB_ASSERT(env, sharecount > 0);
+ MEMBAR_EXIT();
diff --git a/ports/berkeleydb/portfile.cmake b/ports/berkeleydb/portfile.cmake
index 5d47b7a6f..93d89fb3e 100644
--- a/ports/berkeleydb/portfile.cmake
+++ b/ports/berkeleydb/portfile.cmake
@@ -9,6 +9,7 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
+ PATCHES fix-conflict-macro.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
diff --git a/ports/bigint/CONTROL b/ports/bigint/CONTROL
index b47401c79..d6291ac68 100644
--- a/ports/bigint/CONTROL
+++ b/ports/bigint/CONTROL
@@ -1,4 +1,5 @@
Source: bigint
-Version: 2010.04.30-4
+Version: 2010.04.30
+Port-Version: 5
Homepage: https://mattmccutchen.net/bigint
Description: C++ Big Integer Library
diff --git a/ports/bigint/fix-osx-usage.patch b/ports/bigint/fix-osx-usage.patch
new file mode 100644
index 000000000..f387d7b29
--- /dev/null
+++ b/ports/bigint/fix-osx-usage.patch
@@ -0,0 +1,39 @@
+diff --git a/BigUnsigned.hh b/BigUnsigned.hh
+index adf1c00..9228753 100644
+--- a/BigUnsigned.hh
++++ b/BigUnsigned.hh
+@@ -20,7 +20,7 @@ public:
+ typedef unsigned long Blk;
+
+ typedef NumberlikeArray<Blk>::Index Index;
+- NumberlikeArray<Blk>::N;
++ using NumberlikeArray<Blk>::N;
+
+ protected:
+ // Creates a BigUnsigned with a capacity; for internal use.
+@@ -84,8 +84,8 @@ public:
+ // BIT/BLOCK ACCESSORS
+
+ // Expose these from NumberlikeArray directly.
+- NumberlikeArray<Blk>::getCapacity;
+- NumberlikeArray<Blk>::getLength;
++ using NumberlikeArray<Blk>::getCapacity;
++ using NumberlikeArray<Blk>::getLength;
+
+ /* Returns the requested block, or 0 if it is beyond the length (as if
+ * the number had 0s infinitely to the left). */
+diff --git a/BigUnsignedInABase.hh b/BigUnsignedInABase.hh
+index 8f9bdce..0ea89c6 100644
+--- a/BigUnsignedInABase.hh
++++ b/BigUnsignedInABase.hh
+@@ -100,8 +100,8 @@ public:
+ Base getBase() const { return base; }
+
+ // Expose these from NumberlikeArray directly.
+- NumberlikeArray<Digit>::getCapacity;
+- NumberlikeArray<Digit>::getLength;
++ using NumberlikeArray<Digit>::getCapacity;
++ using NumberlikeArray<Digit>::getLength;
+
+ /* Returns the requested digit, or 0 if it is beyond the length (as if
+ * the number had 0s infinitely to the left). */
diff --git a/ports/bigint/portfile.cmake b/ports/bigint/portfile.cmake
index 2a0a22adb..07c43836f 100644
--- a/ports/bigint/portfile.cmake
+++ b/ports/bigint/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_download_distfile(ARCHIVE
@@ -11,6 +9,7 @@ vcpkg_download_distfile(ARCHIVE
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE ${ARCHIVE}
+ PATCHES fix-osx-usage.patch
)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
@@ -23,4 +22,6 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
+configure_file(${CURRENT_PORT_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage @ONLY)
+file(INSTALL ${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(INSTALL ${SOURCE_PATH}/README DESTINATION ${CURRENT_PACKAGES_DIR}/share/bigint RENAME copyright)
diff --git a/ports/bigint/usage b/ports/bigint/usage
new file mode 100644
index 000000000..cf9dc6474
--- /dev/null
+++ b/ports/bigint/usage
@@ -0,0 +1,5 @@
+The package @PORT@:@TARGET_TRIPLET@ provides CMake targets:
+
+ find_package(@PORT@ CONFIG REQUIRED)
+ target_include_directories(main PRIVATE ${BIGINT_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${BIGINT_LIBRARIES})
diff --git a/ports/bigint/vcpkg-cmake-wrapper.cmake b/ports/bigint/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..92972c09f
--- /dev/null
+++ b/ports/bigint/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,10 @@
+include(SelectLibraryConfigurations)
+
+find_path(BIGINT_INCLUDE_DIR BigInteger.hh PATH_SUFFIXES bigint)
+find_library(BIGINT_LIBRARY_DEBUG NAMES bigint NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH REQUIRED)
+find_library(BIGINT_LIBRARY_RELEASE NAMES bigint NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH REQUIRED)
+
+select_library_configurations(BIGINT)
+
+set(BIGINT_INCLUDE_DIRS ${BIGINT_INCLUDE_DIR})
+set(BIGINT_LIBRARIES ${BIGINT_LIBRARY})
diff --git a/ports/boost-build/CONTROL b/ports/boost-build/CONTROL
index f6ab98cf8..8b4c5e161 100644
--- a/ports/boost-build/CONTROL
+++ b/ports/boost-build/CONTROL
@@ -1,5 +1,6 @@
Source: boost-build
Version: 1.73.0
-Port-Version: 2
+Port-Version: 3
Homepage: https://github.com/boostorg/build
Description: Boost.Build
+Build-Depends: boost-uninstall \ No newline at end of file
diff --git a/ports/boost-modular-build-helper/CONTROL b/ports/boost-modular-build-helper/CONTROL
index f1794db5d..601b286e0 100644
--- a/ports/boost-modular-build-helper/CONTROL
+++ b/ports/boost-modular-build-helper/CONTROL
@@ -1,3 +1,4 @@
Source: boost-modular-build-helper
Version: 1.73.0
-Port-Version: 3
+Port-Version: 4
+Build-Depends: boost-uninstall \ No newline at end of file
diff --git a/ports/boost-uninstall/CONTROL b/ports/boost-uninstall/CONTROL
new file mode 100644
index 000000000..8556583a3
--- /dev/null
+++ b/ports/boost-uninstall/CONTROL
@@ -0,0 +1,4 @@
+Source: boost-uninstall
+Version: 1.73.0
+Homepage: https://boost.org
+Description: boost uninstall port \ No newline at end of file
diff --git a/ports/boost-uninstall/portfile.cmake b/ports/boost-uninstall/portfile.cmake
new file mode 100644
index 000000000..a06925e40
--- /dev/null
+++ b/ports/boost-uninstall/portfile.cmake
@@ -0,0 +1,4 @@
+set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
+message(STATUS "\nPlease use the following command when you need to remove all boost ports/components:\n\
+ \"./vcpkg remove boost-uninstall:${TARGET_TRIPLET} --recurse\"\n")
diff --git a/ports/boost-vcpkg-helpers/CONTROL b/ports/boost-vcpkg-helpers/CONTROL
index 9069917a2..1b1642e17 100644
--- a/ports/boost-vcpkg-helpers/CONTROL
+++ b/ports/boost-vcpkg-helpers/CONTROL
@@ -1,3 +1,5 @@
Source: boost-vcpkg-helpers
Version: 7
+Port-Version: 1
Description: a set of vcpkg-internal scripts used to modularize boost
+Build-Depends: boost-uninstall \ No newline at end of file
diff --git a/ports/boringssl/0002-disable-waring-4065.patch b/ports/boringssl/0002-disable-waring-4065.patch
index 9e72aeb59..88ffffaf0 100644
--- a/ports/boringssl/0002-disable-waring-4065.patch
+++ b/ports/boringssl/0002-disable-waring-4065.patch
@@ -1,13 +1,15 @@
-diff --git a/decrepit/CMakeLists.txt b/decrepit/CMakeLists.txt
-index ef95a6b..ad7c8d8 100644
---- a/decrepit/CMakeLists.txt
-+++ b/decrepit/CMakeLists.txt
-@@ -24,6 +24,8 @@ add_library(
-
- add_dependencies(decrepit global_target)
-
-+target_compile_options(decrepit PRIVATE /wd4065)
-+
- target_link_libraries(decrepit crypto ssl)
-
- add_executable(
+diff --git a/decrepit/CMakeLists.txt b/decrepit/CMakeLists.txt
+index ef95a6b..0b52c05 100644
+--- a/decrepit/CMakeLists.txt
++++ b/decrepit/CMakeLists.txt
+@@ -40,6 +40,10 @@ add_executable(
+
+ add_dependencies(decrepit_test global_target)
+
++if(MSVC)
++ target_compile_options(decrepit PRIVATE /wd4065)
++endif()
++
+ target_link_libraries(decrepit_test test_support_lib boringssl_gtest decrepit
+ crypto)
+ if(WIN32)
diff --git a/ports/boringssl/CONTROL b/ports/boringssl/CONTROL
index 5cfa543f1..1c8c4dcbf 100644
--- a/ports/boringssl/CONTROL
+++ b/ports/boringssl/CONTROL
@@ -1,6 +1,6 @@
Source: boringssl
Version: 2020-04-07
-Port-Version: 1
+Port-Version: 2
Homepage: https://boringssl.googlesource.com/boringssl
Description: BoringSSl is a fork of OpenSSL developed by Google
Supports: !uwp
diff --git a/ports/box2d/CONTROL b/ports/box2d/CONTROL
index a7e4b7f1c..909dc4c1a 100644
--- a/ports/box2d/CONTROL
+++ b/ports/box2d/CONTROL
@@ -1,4 +1,5 @@
Source: box2d
-Version: 2019-12-31
+Version: 2.4.0
Description: An open source C++ engine for simulating rigid bodies in 2D.
Homepage: https://box2d.org
+Supports: !uwp
diff --git a/ports/box2d/portfile.cmake b/ports/box2d/portfile.cmake
index c930f41b9..3b931cb3f 100644
--- a/ports/box2d/portfile.cmake
+++ b/ports/box2d/portfile.cmake
@@ -5,8 +5,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO erincatto/Box2D
- REF 37e2dc25f8da158abda10324d75cb4d1db009adf
- SHA512 c9021b6bbc8ee405e38418bdadc136814fb66d5f4928ffd06d2ed016751613ecc3e82e7f60851fdc7a2e13594f68c21e7b7adb06d35a5a02314235132556d174
+ REF 4d7757feedc9dd36f64393ae08acfd3b9600ac17 #v2.4.0
+ SHA512 197f701016c91fda944328e7d867f0a5baa152cce53fa35826986923456af593595bad884008944e041d9ac2e1d769a54eaad4142e19b42a3bb2a2010d814cc9
HEAD_REF master
PATCHES
export-targets.patch
diff --git a/ports/bzip2/CONTROL b/ports/bzip2/CONTROL
index bdc70fcf4..b79a4950b 100644
--- a/ports/bzip2/CONTROL
+++ b/ports/bzip2/CONTROL
@@ -1,5 +1,4 @@
Source: bzip2
-Version: 1.0.6
-Port-Version: 7
+Version: 1.0.8
Homepage: http://www.bzip.org/
Description: High-quality data compressor.
diff --git a/ports/bzip2/fix-windows-include.patch b/ports/bzip2/fix-windows-include.patch
deleted file mode 100644
index 11797ad2f..000000000
--- a/ports/bzip2/fix-windows-include.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -urN bzip2-1.0.6-orig/bzip2.c bzip2-1.0.6/bzip2.c
---- bzip2-1.0.6-orig/bzip2.c 2010-09-11 02:04:53.000000000 +0300
-+++ bzip2-1.0.6/bzip2.c 2019-11-04 11:40:52.230652175 +0200
-@@ -128,7 +128,7 @@
- #if BZ_LCCWIN32
- # include <io.h>
- # include <fcntl.h>
--# include <sys\stat.h>
-+# include <sys/stat.h>
-
- # define NORETURN /**/
- # define PATH_SEP '\\'
diff --git a/ports/bzip2/portfile.cmake b/ports/bzip2/portfile.cmake
index d6b70bacb..97b5c3258 100644
--- a/ports/bzip2/portfile.cmake
+++ b/ports/bzip2/portfile.cmake
@@ -1,16 +1,9 @@
-set(BZIP2_VERSION 1.0.6) # TODO: Update to 1.0.8
-vcpkg_download_distfile(ARCHIVE # TODO: switch to vcpkg_from_git with https://sourceware.org/git/?p=bzip2.git;a=summary
- URLS "https://github.com/past-due/bzip2-mirror/releases/download/v${BZIP2_VERSION}/bzip2-${BZIP2_VERSION}.tar.gz"
- FILENAME "bzip2-${BZIP2_VERSION}.tar.gz"
- SHA512 00ace5438cfa0c577e5f578d8a808613187eff5217c35164ffe044fbafdfec9e98f4192c02a7d67e01e5a5ccced630583ad1003c37697219b0f147343a3fdd12)
-
-vcpkg_extract_source_archive_ex(
+vcpkg_from_git(
OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${ARCHIVE}
- REF ${BZIP2_VERSION}
+ URL https://sourceware.org/git/bzip2.git
+ REF 75a94bea3918e612b879d6a11ca64b8689526147
PATCHES
fix-import-export-macros.patch
- fix-windows-include.patch
)
file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}")
diff --git a/ports/ceres/0001_cmakelists_fixes.patch b/ports/ceres/0001_cmakelists_fixes.patch
index f269f05ee..87a3785d5 100644
--- a/ports/ceres/0001_cmakelists_fixes.patch
+++ b/ports/ceres/0001_cmakelists_fixes.patch
@@ -31,19 +31,10 @@ index 02c72b5..62d8c59 100644
endif (MINIGLOG)
if (NOT SCHUR_SPECIALIZATIONS)
-@@ -582,7 +562,7 @@ include_directories(
- # Note that this is *not* propagated to clients, ie CERES_INCLUDE_DIRS
- # used by clients after find_package(Ceres) does not identify Eigen as
- # as system headers.
--include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
-+include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS}/Eigen)
-
- if (SUITESPARSE)
- include_directories(${SUITESPARSE_INCLUDE_DIRS})
-@@ -917,8 +897,6 @@ install(FILES "${Ceres_BINARY_DIR}/CeresConfig-install.cmake"
+@@ -917,8 +897,5 @@ install(FILES "${Ceres_BINARY_DIR}/CeresConfig-install.cmake"
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
install(FILES "${Ceres_BINARY_DIR}/CeresConfigVersion.cmake"
- "${Ceres_SOURCE_DIR}/cmake/FindEigen.cmake"
+- "${Ceres_SOURCE_DIR}/cmake/FindEigen.cmake"
- "${Ceres_SOURCE_DIR}/cmake/FindGlog.cmake"
- "${Ceres_SOURCE_DIR}/cmake/FindGflags.cmake"
DESTINATION ${RELATIVE_CMAKECONFIG_INSTALL_DIR})
diff --git a/ports/ceres/0004_blas_linux_fix.patch b/ports/ceres/0004_blas_linux_fix.patch
deleted file mode 100644
index 5fffee5e2..000000000
--- a/ports/ceres/0004_blas_linux_fix.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/internal/ceres/blas.cc b/internal/ceres/blas.cc
-index 3ba63bb..071a26e 100644
---- a/internal/ceres/blas.cc
-+++ b/internal/ceres/blas.cc
-@@ -33,7 +33,7 @@
- #include "glog/logging.h"
-
- #ifndef CERES_NO_LAPACK
--extern "C" void dsyrk_(char* uplo,
-+extern "C" void dsyrk(char* uplo,
- char* trans,
- int* n,
- int* k,
-@@ -64,7 +64,7 @@ void BLAS::SymmetricRankKUpdate(int num_rows,
- int k = transpose ? num_rows : num_cols;
- int lda = k;
- int ldc = n;
-- dsyrk_(&uplo,
-+ dsyrk(&uplo,
- &trans,
- &n,
- &k,
diff --git a/ports/ceres/0004_fix_find_eigen.patch b/ports/ceres/0004_fix_find_eigen.patch
new file mode 100644
index 000000000..ad92228c0
--- /dev/null
+++ b/ports/ceres/0004_fix_find_eigen.patch
@@ -0,0 +1,122 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7033de0..5235baa 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -209,40 +209,40 @@ endif (IOS)
+ unset(CERES_COMPILE_OPTIONS)
+
+ # Eigen.
+-find_package(Eigen REQUIRED)
+-if (EIGEN_FOUND)
+- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
+- if (EIGEN_VERSION VERSION_LESS 3.1.0)
++find_package(Eigen3 REQUIRED)
++if (EIGEN3_FOUND)
++ message(STATUS "Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
++ if (EIGEN3_VERSION_STRING VERSION_LESS 3.1.0)
+ message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.1.0 in order "
+ "that Eigen/SparseCore be available, detected version of Eigen is: "
+- "${EIGEN_VERSION}")
+- endif (EIGEN_VERSION VERSION_LESS 3.1.0)
++ "${EIGEN3_VERSION_STRING}")
++ endif (EIGEN3_VERSION_STRING VERSION_LESS 3.1.0)
+
+ if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND
+- EIGEN_VERSION VERSION_LESS 3.3.4)
++ EIGEN3_VERSION_STRING VERSION_LESS 3.3.4)
+ # As per issue #289: https://github.com/ceres-solver/ceres-solver/issues/289
+ # the bundle_adjustment_test will fail for Eigen < 3.3.4 on aarch64.
+ message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.3.4 on aarch64. "
+- "Detected version of Eigen is: ${EIGEN_VERSION}.")
++ "Detected version of Eigen is: ${EIGEN3_VERSION_STRING}.")
+ endif()
+
+ if (EIGENSPARSE)
+- message("-- Enabling use of Eigen as a sparse linear algebra library.")
++ message(STATUS "Enabling use of Eigen as a sparse linear algebra library.")
+ list(APPEND CERES_COMPILE_OPTIONS CERES_USE_EIGEN_SPARSE)
+- if (EIGEN_VERSION VERSION_LESS 3.2.2)
++ if (EIGEN3_VERSION_STRING VERSION_LESS 3.2.2)
+ message(" WARNING:")
+ message("")
+- message(" Your version of Eigen (${EIGEN_VERSION}) is older than ")
++ message(" Your version of Eigen (${EIGEN3_VERSION_STRING}) is older than ")
+ message(" version 3.2.2. The performance of SPARSE_NORMAL_CHOLESKY ")
+ message(" and SPARSE_SCHUR linear solvers will suffer.")
+- endif (EIGEN_VERSION VERSION_LESS 3.2.2)
++ endif (EIGEN3_VERSION_STRING VERSION_LESS 3.2.2)
+ else (EIGENSPARSE)
+ message("-- Disabling use of Eigen as a sparse linear algebra library.")
+ message(" This does not affect the covariance estimation algorithm ")
+ message(" which can still use the EIGEN_SPARSE_QR algorithm.")
+ add_definitions(-DEIGEN_MPL2_ONLY)
+ endif (EIGENSPARSE)
+-endif (EIGEN_FOUND)
++endif (EIGEN3_FOUND)
+
+ if (LAPACK)
+ find_package(LAPACK QUIET)
+@@ -562,7 +562,7 @@ include_directories(
+ # Note that this is *not* propagated to clients, ie CERES_INCLUDE_DIRS
+ # used by clients after find_package(Ceres) does not identify Eigen as
+ # as system headers.
+-include_directories(SYSTEM ${EIGEN_INCLUDE_DIRS})
++include_directories(${EIGEN3_INCLUDE_DIRS})
+
+ if (SUITESPARSE)
+ include_directories(${SUITESPARSE_INCLUDE_DIRS})
+diff --git a/cmake/CeresConfig.cmake.in b/cmake/CeresConfig.cmake.in
+index c4ed71f..b3d6a17 100644
+--- a/cmake/CeresConfig.cmake.in
++++ b/cmake/CeresConfig.cmake.in
+@@ -202,39 +202,39 @@ set(CERES_VERSION @CERES_VERSION@ )
+
+ # Eigen.
+ # Flag set during configuration and build of Ceres.
+-set(CERES_EIGEN_VERSION @EIGEN_VERSION@)
++set(CERES_EIGEN_VERSION @EIGEN3_VERSION_STRING@)
+ set(EIGEN_WAS_BUILT_WITH_CMAKE @FOUND_INSTALLED_EIGEN_CMAKE_CONFIGURATION@)
+ # Append the locations of Eigen when Ceres was built to the search path hints.
+ if (EIGEN_WAS_BUILT_WITH_CMAKE)
+ set(Eigen3_DIR @Eigen3_DIR@)
+ set(EIGEN_PREFER_EXPORTED_EIGEN_CMAKE_CONFIGURATION TRUE)
+ else()
+- list(APPEND EIGEN_INCLUDE_DIR_HINTS @EIGEN_INCLUDE_DIR@)
++ list(APPEND EIGEN_INCLUDE_DIR_HINTS @EIGEN3_INCLUDE_DIR@)
+ endif()
+ # Search quietly to control the timing of the error message if not found. The
+ # search should be for an exact match, but for usability reasons do a soft
+ # match and reject with an explanation below.
+-find_package(Eigen ${CERES_EIGEN_VERSION} QUIET)
+-if (EIGEN_FOUND)
+- if (NOT EIGEN_VERSION VERSION_EQUAL CERES_EIGEN_VERSION)
++find_package(Eigen3 ${CERES_EIGEN_VERSION} QUIET)
++if (EIGEN3_FOUND)
++ if (NOT EIGEN3_VERSION_STRING VERSION_EQUAL CERES_EIGEN_VERSION)
+ # CMake's VERSION check in FIND_PACKAGE() will accept any version >= the
+ # specified version. However, only version = is supported. Improve
+ # usability by explaining why we don't accept non-exact version matching.
+ ceres_report_not_found("Found Eigen dependency, but the version of Eigen "
+- "found (${EIGEN_VERSION}) does not exactly match the version of Eigen "
++ "found (${EIGEN3_VERSION_STRING}) does not exactly match the version of Eigen "
+ "Ceres was compiled with (${CERES_EIGEN_VERSION}). This can cause subtle "
+ "bugs by triggering violations of the One Definition Rule. See the "
+ "Wikipedia article http://en.wikipedia.org/wiki/One_Definition_Rule "
+ "for more details")
+ endif ()
+ message(STATUS "Found required Ceres dependency: "
+- "Eigen version ${CERES_EIGEN_VERSION} in ${EIGEN_INCLUDE_DIRS}")
+-else (EIGEN_FOUND)
++ "Eigen version ${CERES_EIGEN_VERSION} in ${EIGEN3_INCLUDE_DIRS}")
++else (EIGEN3_FOUND)
+ ceres_report_not_found("Missing required Ceres "
+ "dependency: Eigen version ${CERES_EIGEN_VERSION}, please set "
+- "EIGEN_INCLUDE_DIR.")
+-endif (EIGEN_FOUND)
+-list(APPEND CERES_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS})
++ "EIGEN3_INCLUDE_DIR.")
++endif (EIGEN3_FOUND)
++list(APPEND CERES_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIRS})
+
+ # Glog.
+ include (CMakeFindDependencyMacro)
diff --git a/ports/ceres/CONTROL b/ports/ceres/CONTROL
index ecd8f1de6..5870df378 100644
--- a/ports/ceres/CONTROL
+++ b/ports/ceres/CONTROL
@@ -1,6 +1,6 @@
Source: ceres
Version: 1.14.0
-Port-Version: 8
+Port-Version: 9
Build-Depends: glog, eigen3
Homepage: https://github.com/ceres-solver/ceres-solver
Description: non-linear optimization package
diff --git a/ports/ceres/portfile.cmake b/ports/ceres/portfile.cmake
index d2d781b59..e7c455c56 100644
--- a/ports/ceres/portfile.cmake
+++ b/ports/ceres/portfile.cmake
@@ -6,10 +6,6 @@ if(VCPKG_CRT_LINKAGE STREQUAL "static")
set(MSVC_USE_STATIC_CRT_VALUE ON)
endif()
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
- set(ADDITIONAL_PATCH "0004_blas_linux_fix.patch")
-endif()
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ceres-solver/ceres-solver
@@ -20,15 +16,14 @@ vcpkg_from_github(
0001_cmakelists_fixes.patch
0002_use_glog_target.patch
0003_fix_exported_ceres_config.patch
- ${ADDITIONAL_PATCH}
+ 0004_fix_find_eigen.patch
)
+file(REMOVE ${SOURCE_PATH}/cmake/FindCXSparse.cmake)
file(REMOVE ${SOURCE_PATH}/cmake/FindGflags.cmake)
file(REMOVE ${SOURCE_PATH}/cmake/FindGlog.cmake)
-#file(REMOVE ${SOURCE_PATH}/cmake/FindEigen.cmake)
+file(REMOVE ${SOURCE_PATH}/cmake/FindEigen.cmake)
file(REMOVE ${SOURCE_PATH}/cmake/FindSuiteSparse.cmake)
-#file(REMOVE ${SOURCE_PATH}/cmake/FindTBB.cmake)
-
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
"suitesparse" SUITESPARSE
@@ -52,7 +47,7 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+if(VCPKG_TARGET_IS_WINDOWS)
vcpkg_fixup_cmake_targets(CONFIG_PATH CMake)
else()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib${LIB_SUFFIX}/cmake/Ceres)
@@ -61,7 +56,7 @@ endif()
vcpkg_copy_pdbs()
# Changes target search path
-if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+if(VCPKG_TARGET_IS_WINDOWS)
file(READ ${CURRENT_PACKAGES_DIR}/share/ceres/CeresConfig.cmake CERES_TARGETS)
string(REPLACE "get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${CERES_CURRENT_CONFIG_DIR}/../"
"get_filename_component(CURRENT_ROOT_INSTALL_DIR\n \${CERES_CURRENT_CONFIG_DIR}/../../" CERES_TARGETS "${CERES_TARGETS}")
@@ -77,6 +72,4 @@ endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-# Handle copyright of suitesparse and metis
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/ceres)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/ceres/LICENSE ${CURRENT_PACKAGES_DIR}/share/ceres/copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/cli/CONTROL b/ports/cli/CONTROL
index b84813e2f..8cda2750e 100644
--- a/ports/cli/CONTROL
+++ b/ports/cli/CONTROL
@@ -1,5 +1,5 @@
Source: cli
-Version: 1.2.0
+Version: 1.2.1
Homepage: https://github.com/daniele77/cli
Description: A library for interactive command line interfaces in modern C++
Build-Depends: boost-asio
diff --git a/ports/cli/portfile.cmake b/ports/cli/portfile.cmake
index 77813db66..134c71829 100644
--- a/ports/cli/portfile.cmake
+++ b/ports/cli/portfile.cmake
@@ -1,10 +1,8 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO daniele77/cli
- REF v1.2.0
- SHA512 ff548cbc1a77ded32f67d0ff4740d2abb31226cb6f0d9d431e1a35dcdfcaf68a2b9e16e926fc88f19aa17f5c6f5f8e2aead83ff65d7557c192bdd7d4ce2a2d3e
+ REF v1.2.1
+ SHA512 fc834608ac2ca6c3f330711c80897cc581eb1ed8da7a0d56a07efe6650d871f5317c777a6a029fdc0177684f08479bd129cc0ce748354bac3dbe6af79a390d14
HEAD_REF master
)
@@ -17,4 +15,4 @@ vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/cli)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/cli RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/cpp-taskflow/CONTROL b/ports/cpp-taskflow/CONTROL
index ee3e33ed0..72ef86c8e 100644
--- a/ports/cpp-taskflow/CONTROL
+++ b/ports/cpp-taskflow/CONTROL
@@ -1,4 +1,4 @@
Source: cpp-taskflow
-Version: 2.2.0-1
+Version: 2.5.0
Description: Fast Parallel Tasking Programming Library using Modern C++.
Homepage: https://github.com/taskflow/taskflow
diff --git a/ports/cpp-taskflow/fix-compiler-error.patch b/ports/cpp-taskflow/fix-compiler-error.patch
new file mode 100644
index 000000000..1bcdcd41f
--- /dev/null
+++ b/ports/cpp-taskflow/fix-compiler-error.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9beec931..6782f1d5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -89,7 +89,7 @@ target_compile_options(
+ $<$<CXX_COMPILER_ID:AppleClang>:-Wall -Wextra -Wfatal-errors>
+ $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:Clang>>:-Wall -Wextra -Wfatal-errors>
+ $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:GNU>>:-Wall -Wextra -Wfatal-errors>
+- $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:MSVC>>:/W3 /permissive->
++ $<$<AND:$<COMPILE_LANGUAGE:CXX>,$<CXX_COMPILER_ID:MSVC>>:/bigobj /W3 /permissive->
+ #$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-Wall,-Wextra,-Wfatal-errors>
+ #$<$<CXX_COMPILER_ID:Clang>:-Wall -Wextra -Wfatal-errors>
+ #$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wfatal-errors>
+@@ -219,6 +219,8 @@ target_include_directories(${PROJECT_NAME} INTERFACE
+ # Example program
+ # -----------------------------------------------------------------------------
+
++if(BUILD_TEST)
++
+ message(STATUS "Building examples ...")
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${TF_EXAMPLE_DIR})
+
+@@ -617,6 +619,8 @@ add_test(cuda_kmeans.1000.16C16G ${TF_UTEST_CUDA_KMEANS} -tc=kmeans.1000.16C16G)
+
+ endif(CMAKE_CUDA_COMPILER)
+
++endif()
++
+ # -----------------------------------------------------------------------------
+ # Benchmarking (enabled by TF_BUILD_BENCHMARKS)
+ # -----------------------------------------------------------------------------
diff --git a/ports/cpp-taskflow/portfile.cmake b/ports/cpp-taskflow/portfile.cmake
index 8e2964337..735a08d47 100644
--- a/ports/cpp-taskflow/portfile.cmake
+++ b/ports/cpp-taskflow/portfile.cmake
@@ -2,9 +2,10 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO taskflow/taskflow
- REF v2.2.0
- SHA512 1aa4e9d7324f56eb33cd4986d721035f0abf12e022da956bafc0b16cf6cb82d152334ae58edc4581ab2f6d44989ca21cdd590ad560d6f1a4f905710fe08d0091
+ REF v2.5.0
+ SHA512 49f38a14a207db085a2e3581b3698cdb3be4fa65c11194db454bd2fb65da2d744347c6a10a7a903b04cc2dd5cac65ef389d400c66d2a23521c3bbe2283357890
HEAD_REF master
+ PATCHES fix-compiler-error.patch
)
vcpkg_configure_cmake(
@@ -12,8 +13,9 @@ vcpkg_configure_cmake(
PREFER_NINJA
OPTIONS
-DTF_BUILD_EXAMPLES=OFF
- -DTF_BUILD_TESTS=OFF
+ -DBUILD_TESTING=OFF
-DTF_BUILD_BENCHMARKS=OFF
+ -DCMAKE_CUDA_COMPILER=OFF
)
vcpkg_install_cmake()
@@ -23,4 +25,4 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug ${CURRENT_PACKAGES_DIR}/lib)
# Handle copyright
-configure_file(${SOURCE_PATH}/LICENSE ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/cspice/CMakeLists.txt b/ports/cspice/CMakeLists.txt
index e82b3a280..af5c3e22b 100644
--- a/ports/cspice/CMakeLists.txt
+++ b/ports/cspice/CMakeLists.txt
@@ -18,8 +18,12 @@ if (WIN32)
target_compile_definitions(cspice PUBLIC "_COMPLEX_DEFINED;MSDOS;OMIT_BLANK_CC;NON_ANSI_STDIO")
set_target_properties(cspice PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
elseif (UNIX)
- target_compile_definitions(cspice PUBLIC "NON_ANSI_STDIO")
- target_compile_options(cspice PUBLIC -m64 -ansi -fPIC)
+ target_compile_definitions(cspice PUBLIC "NON_UNIX_STDIO")
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+ target_compile_options(cspice PUBLIC -m64 -ansi -fPIC)
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ target_compile_options(cspice PUBLIC -m32 -ansi -fPIC)
+ endif()
endif ()
if (NOT _SKIP_HEADERS)
diff --git a/ports/cspice/CONTROL b/ports/cspice/CONTROL
index 670f75a3a..bb83e586d 100644
--- a/ports/cspice/CONTROL
+++ b/ports/cspice/CONTROL
@@ -1,3 +1,6 @@
Source: cspice
-Version: 66-1
+Version: 66
+Port-Version: 2
+Homepage: https://naif.jpl.nasa.gov/naif/toolkit_C.html
Description: NASA C SPICE toolkit
+Supports: !uwp \ No newline at end of file
diff --git a/ports/cspice/portfile.cmake b/ports/cspice/portfile.cmake
index 7c52772f3..865325a7a 100644
--- a/ports/cspice/portfile.cmake
+++ b/ports/cspice/portfile.cmake
@@ -1,31 +1,49 @@
-include(vcpkg_common_functions)
+vcpkg_fail_port_install(ON_TARGET "uwp")
-if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- message(FATAL_ERROR "${PORT} does not currently support UWP")
-endif()
-
-if (WIN32)
- vcpkg_download_distfile(ARCHIVE
- URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit/C/PC_Windows_VisualC_32bit/packages/cspice.zip"
- FILENAME "cspice.zip"
- SHA512 4f6129b26543729f4eb4f8240b43ca87530db9c6d9a5c0e3f43faf30561eaad95dcf507e3fecfd1c3d4388ccaa4e22a76df7bf7945b6ce9a68eb3b4893885992
- )
-elseif (APPLE)
- vcpkg_download_distfile(ARCHIVE
- URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit//C/MacIntel_OSX_AppleC_32bit/packages/cspice.tar.Z"
- FILENAME "cspice.tar.Z"
- SHA512 bd5cc20206e48b3712c5077a2beb05c98cd58a25ce374ed363699a04998eb8ba93e42b5f7c2104c5296db95b3bccdc7cc9b6a2ba45875454d0c3914834aa4c42
- )
-else ()
- vcpkg_download_distfile(ARCHIVE
- URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit/C/PC_Linux_GCC_32bit/packages/cspice.tar.Z"
- FILENAME "cspice.tar.Z"
- SHA512 b387bc2cfca4deccc451d198af49564ea0b19cf665ba143d39196ed532639cbc11aad7e1d63f71f1bb88d72c0e6ac30757b6e1babca9e0ee3b92f9c205c1b908
- )
+if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit/C/PC_Windows_VisualC_32bit/packages/cspice.zip"
+ FILENAME "cspice_32bit.zip"
+ SHA512 4f6129b26543729f4eb4f8240b43ca87530db9c6d9a5c0e3f43faf30561eaad95dcf507e3fecfd1c3d4388ccaa4e22a76df7bf7945b6ce9a68eb3b4893885992
+ )
+ elseif (VCPKG_TARGET_IS_OSX)
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit//C/MacIntel_OSX_AppleC_32bit/packages/cspice.tar.Z"
+ FILENAME "cspice_32bit.tar.Z"
+ SHA512 bd5cc20206e48b3712c5077a2beb05c98cd58a25ce374ed363699a04998eb8ba93e42b5f7c2104c5296db95b3bccdc7cc9b6a2ba45875454d0c3914834aa4c42
+ )
+ else ()
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit/C/PC_Linux_GCC_32bit/packages/cspice.tar.Z"
+ FILENAME "cspice_32bit.tar.Z"
+ SHA512 b387bc2cfca4deccc451d198af49564ea0b19cf665ba143d39196ed532639cbc11aad7e1d63f71f1bb88d72c0e6ac30757b6e1babca9e0ee3b92f9c205c1b908
+ )
+ endif()
+else()
+ if (VCPKG_TARGET_IS_WINDOWS)
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit/C/PC_Windows_VisualC_64bit/packages/cspice.zip"
+ FILENAME "cspice_64bit.zip"
+ SHA512 7b5353c638fdba67ed2e9fd21c4f78ac56c0afba408caa70f910f23bb025f6dc822fbaa7d6d7fa277d1038f835e6a962563f4b11a6adf63150d48354959e3c62
+ )
+ elseif (VCPKG_TARGET_IS_OSX)
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit//C/MacIntel_OSX_AppleC_64bit/packages/cspice.tar.Z"
+ FILENAME "cspice_64bit.tar.Z"
+ SHA512 0d4ef95dfa65d127c1d6f9cf1f637d41ca6680660ee3003f357652f12ed9d04a21888ef796f347ba90354a445b5aea9ffca7dedc6c1617f253b0002683d54a0f
+ )
+ else ()
+ vcpkg_download_distfile(ARCHIVE
+ URLS "https://naif.jpl.nasa.gov/pub/naif/toolkit/C/PC_Linux_GCC_64bit/packages/cspice.tar.Z"
+ FILENAME "cspice_64bit.tar.Z"
+ SHA512 7d090e9196596436740b53180a7c6ca885c12e301771a83fc62d625a63691129c69012cb0385a6c8f246cc5edf1c1af57ffac8a9d766061e1bde8584c57c6ca4
+ )
+ endif()
endif()
set(PATCHES isatty.patch)
-if (NOT WIN32)
+if (NOT VCPKG_TARGET_IS_WINDOWS)
set(PATCHES ${PATCHES} mktemp.patch)
endif()
@@ -55,6 +73,6 @@ vcpkg_copy_pdbs()
file(
INSTALL ${CMAKE_CURRENT_LIST_DIR}/License.txt
- DESTINATION ${CURRENT_PACKAGES_DIR}/share/cspice
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
RENAME copyright
-)
+) \ No newline at end of file
diff --git a/ports/directxmesh/CONTROL b/ports/directxmesh/CONTROL
index 55e8360d8..f4470fe6a 100644
--- a/ports/directxmesh/CONTROL
+++ b/ports/directxmesh/CONTROL
@@ -1,4 +1,4 @@
Source: directxmesh
-Version: jul2020
+Version: aug2020
Homepage: https://walbourn.github.io/directxmesh
Description: DirectXMesh geometry processing library \ No newline at end of file
diff --git a/ports/directxmesh/portfile.cmake b/ports/directxmesh/portfile.cmake
index ceece913a..56f6ab6ac 100644
--- a/ports/directxmesh/portfile.cmake
+++ b/ports/directxmesh/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/DirectXMesh
- REF jul2020
- SHA512 27618f56fbce39d908417a44ea42ef0040254888fbb92108ecb06f6d70e06c1b168c0366c01f65c6b3d2c9915e445d1da85a48e11c23980cb4ab4b41e0b2904a
+ REF aug2020
+ SHA512 4a116b6266070a075aca523d9439eeab878b5406ffe5f94f7c008d659842750eab17b11c027c7f1da1ed12a0b8a43ab53dc5aaea8477a0bb029654cd477b5424
HEAD_REF master
)
diff --git a/ports/directxtex/CONTROL b/ports/directxtex/CONTROL
index c4bcd2b9d..a31a921c8 100644
--- a/ports/directxtex/CONTROL
+++ b/ports/directxtex/CONTROL
@@ -1,4 +1,4 @@
Source: directxtex
-Version: jul2020
+Version: aug2020
Homepage: https://walbourn.github.io/directxtex
Description: DirectXTex texture processing library \ No newline at end of file
diff --git a/ports/directxtex/portfile.cmake b/ports/directxtex/portfile.cmake
index 79d4466aa..bec2ca9ca 100644
--- a/ports/directxtex/portfile.cmake
+++ b/ports/directxtex/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/DirectXTex
- REF jul2020
- SHA512 5e0c8b181527eb613a830f2228cf66633591c43fd4424dde9efae08d366c7957fdee02ad716a26a7b40b106b1a17f22a0728c2b57d12e12e1dc55ed297f7825c
+ REF aug2020
+ SHA512 f646ff51444f5f51da77e2c21998c7f9a6e014f1ffb1b814937e36e76d20c6a993808f34bda5721177d506f21f1bf36b09e94b18859c41f99043cd0eec5bc9d7
HEAD_REF master
)
diff --git a/ports/directxtk/CONTROL b/ports/directxtk/CONTROL
index 0f627f6c8..c4bc1b1d6 100644
--- a/ports/directxtk/CONTROL
+++ b/ports/directxtk/CONTROL
@@ -1,4 +1,4 @@
Source: directxtk
-Version: jul2020
+Version: aug2020
Homepage: https://walbourn.github.io/directxtk
Description: A collection of helper classes for writing DirectX 11.x code in C++.
diff --git a/ports/directxtk/portfile.cmake b/ports/directxtk/portfile.cmake
index b309add34..5f0be158b 100644
--- a/ports/directxtk/portfile.cmake
+++ b/ports/directxtk/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/DirectXTK
- REF jul2020
- SHA512 e1e77795c12e82d12f491b19b43353b0f7e9cce6343a648728d083e63ae369404029344168b84d6a5162b74c1db4ee5160cd5e01aef26c7fad2ee890e26f41c0
+ REF aug2020
+ SHA512 8f79104f7cebab20a739144471337c24fe5078d6d21760d76ec897569609a0a1f25fe2b16782e0561308470cb73a8901c1dd18f7b2741e30c0aa0cee09a30621
HEAD_REF master
)
diff --git a/ports/directxtk12/CONTROL b/ports/directxtk12/CONTROL
index 2eb9266b8..934d3f612 100644
--- a/ports/directxtk12/CONTROL
+++ b/ports/directxtk12/CONTROL
@@ -1,4 +1,4 @@
Source: directxtk12
-Version: jul2020
+Version: aug2020
Homepage: https://walbourn.github.io/directx-tool-kit-for-directx-12
Description: A collection of helper classes for writing DirectX 12 code in C++.
diff --git a/ports/directxtk12/portfile.cmake b/ports/directxtk12/portfile.cmake
index c3b7eca99..148ce6cfc 100644
--- a/ports/directxtk12/portfile.cmake
+++ b/ports/directxtk12/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY ONLY_DYNAMIC_CRT)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Microsoft/DirectXTK12
- REF jul2020
- SHA512 e658797029140fdfa6313f958367caba656b47637c5973ce1fa05cb777491d2523d2a8f592babd15f1eb839dc8371db9a47a47620a14fe632d0058d93d53e886
+ REF aug2020
+ SHA512 ad462fd36175a11f5825a3d49c2363ed37a15f3e849e95694bef1d7f40fb6b1c6c579565884eb1d099efaabd91c0d9222c335d92bfba5b83a363cb9934ef503f
HEAD_REF master
)
diff --git a/ports/dlib/CONTROL b/ports/dlib/CONTROL
index 61df74294..042b2b791 100644
--- a/ports/dlib/CONTROL
+++ b/ports/dlib/CONTROL
@@ -1,7 +1,7 @@
Source: dlib
-Version: 19.19
-Port-Version: 2
-Build-Depends: libjpeg-turbo, libpng, openblas (!osx), lapack
+Version: 19.21
+Port-Version: 3
+Build-Depends: libjpeg-turbo, libpng, openblas, lapack
Homepage: https://github.com/davisking/dlib
Description: Modern C++ toolkit containing machine learning algorithms and tools for creating complex software in C++
Default-Features: fftw3, sqlite3
diff --git a/ports/dlib/portfile.cmake b/ports/dlib/portfile.cmake
index 13d0ee175..00f45d25f 100644
--- a/ports/dlib/portfile.cmake
+++ b/ports/dlib/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO davisking/dlib
- REF v19.19
- SHA512 013f0c37fa98b0b93824ef94f2c50cb7b41461906ddec1df3021b489e8a02d299b20802416e9dcd6483fd55197e3792119e7b7774ca8dd9c307e8be68a39fe6b
+ REF v19.21
+ SHA512 57133cdcbc5017d324a368ff36a628de55001f1ec0b3ac078b4ad49a63c8c9fb48674617c6a5838ca4e381a6b001fe4aa5a7b3353eb288c58062d2a8fc7b171e
HEAD_REF master
PATCHES
fix-sqlite3-fftw-linkage.patch
diff --git a/ports/drogon/CONTROL b/ports/drogon/CONTROL
index 437298f0b..d9577bb30 100644
--- a/ports/drogon/CONTROL
+++ b/ports/drogon/CONTROL
@@ -1,5 +1,5 @@
Source: drogon
-Version: v1.0.0-beta20
+Version: v1.0.0-beta21
Homepage: https://github.com/an-tao/drogon
Description:Drogon: A C++14/17 based HTTP web application framework running on Linux/macOS/Unix/Windows
-Build-Depends: trantor, zlib, jsoncpp, libmariadb, libpq, sqlite3, brotli \ No newline at end of file
+Build-Depends: trantor, zlib, jsoncpp, libmariadb, libpq, sqlite3, brotli, libuuid (!windows)
diff --git a/ports/drogon/drogon_ctl_install.patch b/ports/drogon/drogon_ctl_install.patch
deleted file mode 100644
index 71643248e..000000000
--- a/ports/drogon/drogon_ctl_install.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/drogon_ctl/CMakeLists.txt b/drogon_ctl/CMakeLists.txt
-index bbc01fe..99500f0 100755
---- a/drogon_ctl/CMakeLists.txt
-+++ b/drogon_ctl/CMakeLists.txt
-@@ -40,13 +40,13 @@ if(WIN32)
- target_link_libraries(drogon_ctl PRIVATE ws2_32 Rpcrt4)
- endif(WIN32)
- message(STATUS "bin:" ${INSTALL_BIN_DIR})
--install(TARGETS drogon_ctl RUNTIME DESTINATION ${INSTALL_BIN_DIR})
-+install(TARGETS drogon_ctl RUNTIME DESTINATION tools/drogon)
- if(WIN32)
- set(CTL_FILE $<TARGET_FILE:drogon_ctl>)
- add_custom_command(TARGET drogon_ctl POST_BUILD
- COMMAND ${CMAKE_COMMAND}
- -DCTL_FILE=${CTL_FILE}
-- -DINSTALL_BIN_DIR=${INSTALL_BIN_DIR}
-+ -DINSTALL_BIN_DIR=tools/drogon
- -P
- ${CMAKE_CURRENT_SOURCE_DIR}/CopyDlls.cmake)
- else(WIN32)
diff --git a/ports/drogon/portfile.cmake b/ports/drogon/portfile.cmake
index 1fe178fc2..d66100591 100644
--- a/ports/drogon/portfile.cmake
+++ b/ports/drogon/portfile.cmake
@@ -1,12 +1,11 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO an-tao/drogon
- REF v1.0.0-beta20
- SHA512 10da2765df24848964358ea3f6a8843664d142bfd1d276649438c5d79ad88f98467ac742d3ff23e9fda93b89ab9568b2ecea8c3ee4d527d0b6b4a5892025e24e
+ REF v1.0.0-beta21
+ SHA512 bacd3c0d20c9d5eb22e6c872c8bea6865a6beb93d83165e117b11a30b7fffd65de48838b599cda81043e7ae1394a9d13390910baa4b84d8cfad3050f152a4c36
HEAD_REF master
PATCHES
vcpkg.patch
- drogon_ctl_install.patch
pg.patch
)
@@ -20,8 +19,10 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
# Fix CMake files
-vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/${PORT})
-
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Drogon)
+# Copy drogon_ctl
+vcpkg_copy_tools(TOOL_NAMES drogon_ctl
+ AUTO_CLEAN)
# # Remove includes in debug
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
@@ -34,4 +35,3 @@ file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${
# Copy pdb files
vcpkg_copy_pdbs()
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/drogon)
diff --git a/ports/eigen3/CONTROL b/ports/eigen3/CONTROL
index 9a60167d2..90d0726e2 100644
--- a/ports/eigen3/CONTROL
+++ b/ports/eigen3/CONTROL
@@ -1,5 +1,5 @@
Source: eigen3
Version: 3.3.7
-Port-Version: 6
+Port-Version: 7
Homepage: http://eigen.tuxfamily.org
Description: C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.
diff --git a/ports/eigen3/portfile.cmake b/ports/eigen3/portfile.cmake
index dedfd026b..6d72fdc5e 100644
--- a/ports/eigen3/portfile.cmake
+++ b/ports/eigen3/portfile.cmake
@@ -25,16 +25,9 @@ vcpkg_configure_cmake(
)
vcpkg_install_cmake()
-
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
-
-vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/share/eigen3/Eigen3Targets.cmake
- "set(_IMPORT_PREFIX " "get_filename_component(_IMPORT_PREFIX \"\${CMAKE_CURRENT_LIST_DIR}/../..\" ABSOLUTE) #"
-)
-
+vcpkg_fixup_cmake_targets()
vcpkg_fixup_pkgconfig()
-file(GLOB INCLUDES ${CURRENT_PACKAGES_DIR}/include/eigen3/*)
-file(COPY ${INCLUDES} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
file(INSTALL ${SOURCE_PATH}/COPYING.README DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/embree3/CONTROL b/ports/embree3/CONTROL
index 824e892e6..1b11e6904 100755
--- a/ports/embree3/CONTROL
+++ b/ports/embree3/CONTROL
@@ -1,5 +1,6 @@
Source: embree3
Version: 3.11.0
+Port-Version: 1
Homepage: https://github.com/embree/embree
Description: High Performance Ray Tracing Kernels.
Build-Depends: tbb
diff --git a/ports/embree3/fix-static-usage.patch b/ports/embree3/fix-static-usage.patch
new file mode 100644
index 000000000..7af99df16
--- /dev/null
+++ b/ports/embree3/fix-static-usage.patch
@@ -0,0 +1,21 @@
+diff --git a/common/cmake/embree-config.cmake b/common/cmake/embree-config.cmake
+index 14ce929..7e2e8f5 100644
+--- a/common/cmake/embree-config.cmake
++++ b/common/cmake/embree-config.cmake
+@@ -50,6 +50,16 @@ IF (EMBREE_STATIC_LIB)
+ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/simd-targets.cmake")
+ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/lexers-targets.cmake")
+ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/tasking-targets.cmake")
++
++ IF(EMBREE_ISA_SSE42)
++ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_sse42-targets.cmake")
++ ENDIF()
++ IF(EMBREE_ISA_AVX)
++ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_avx-targets.cmake")
++ ENDIF()
++ IF(EMBREE_ISA_AVX2)
++ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree_avx2-targets.cmake")
++ ENDIF()
+ ENDIF()
+
+ INCLUDE("${EMBREE_ROOT_DIR}/@EMBREE_CMAKEEXPORT_DIR@/embree-targets.cmake")
diff --git a/ports/embree3/portfile.cmake b/ports/embree3/portfile.cmake
index 6832847dd..94530619e 100755
--- a/ports/embree3/portfile.cmake
+++ b/ports/embree3/portfile.cmake
@@ -6,6 +6,7 @@ vcpkg_from_github(
HEAD_REF master
PATCHES
fix-path.patch
+ fix-static-usage.patch
)
string(COMPARE EQUAL ${VCPKG_LIBRARY_LINKAGE} static EMBREE_STATIC_LIB)
@@ -37,4 +38,4 @@ endif()
file(RENAME ${CURRENT_PACKAGES_DIR}/share/doc ${CURRENT_PACKAGES_DIR}/share/${PORT}/doc)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
diff --git a/ports/ensmallen/CONTROL b/ports/ensmallen/CONTROL
index bf13812e4..39a63bc91 100644
--- a/ports/ensmallen/CONTROL
+++ b/ports/ensmallen/CONTROL
@@ -1,7 +1,6 @@
Source: ensmallen
Version: 2.11.2
-Port-Version: 1
+Port-Version: 2
Homepage: https://github.com/mlpack/ensmallen
Description: A header-only C++ library for mathematical optimization.
-Build-Depends: openblas (!osx), lapack, armadillo
-
+Build-Depends: openblas, lapack, armadillo
diff --git a/ports/exiv2/CONTROL b/ports/exiv2/CONTROL
index 798343c70..14be794c7 100644
--- a/ports/exiv2/CONTROL
+++ b/ports/exiv2/CONTROL
@@ -1,6 +1,6 @@
Source: exiv2
Version: 0.27.3
-Port-Version: 1
+Port-Version: 2
Build-Depends: zlib, libiconv, gettext
Description: Image metadata library and tools
Homepage: https://www.exiv2.org
@@ -12,3 +12,6 @@ Description: Compile with unicode support on windows
Feature: xmp
Description: Build with XMP metadata support
Build-Depends: expat
+
+Feature: video
+Description: Build video support into library
diff --git a/ports/exiv2/expat.patch b/ports/exiv2/expat.patch
deleted file mode 100644
index a170e61dc..000000000
--- a/ports/exiv2/expat.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/cmake/findDependencies.cmake b/cmake/findDependencies.cmake
-index 9caffcf..deb01a0 100644
---- a/cmake/findDependencies.cmake
-+++ b/cmake/findDependencies.cmake
-@@ -33,7 +33,7 @@ if (EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP)
- message(FATAL_ERROR "EXIV2_ENABLE_XMP AND EXIV2_ENABLE_EXTERNAL_XMP are mutually exclusive. You can only choose one of them")
- else()
- if (EXIV2_ENABLE_XMP)
-- find_package(EXPAT REQUIRED)
-+ find_package(expat CONFIG REQUIRED)
- elseif (EXIV2_ENABLE_EXTERNAL_XMP)
- find_package(XmpSdk REQUIRED)
- endif ()
-diff --git a/xmpsdk/CMakeLists.txt b/xmpsdk/CMakeLists.txt
-index ae011dc..7390d26 100644
---- a/xmpsdk/CMakeLists.txt
-+++ b/xmpsdk/CMakeLists.txt
-@@ -26,16 +26,21 @@ add_library(exiv2-xmp STATIC
- include/XMP_Version.h
- )
-
--target_link_libraries(exiv2-xmp
-- PRIVATE
-- ${EXPAT_LIBRARY}
--)
-+if(WIN32 AND NOT MINGW)
-+ target_link_libraries(exiv2-xmp
-+ PRIVATE
-+ expat::libexpat
-+ )
-+else()
-+ target_link_libraries(exiv2-xmp
-+ PRIVATE
-+ expat::expat
-+ )
-+endif()
-
- target_include_directories(exiv2-xmp
- PUBLIC
- $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/xmpsdk/include>
-- PRIVATE
-- ${EXPAT_INCLUDE_DIR}
- )
-
- # Prevent a denial-service-attack related to XML entity expansion
diff --git a/ports/exiv2/portfile.cmake b/ports/exiv2/portfile.cmake
index faab7e405..262be9d35 100644
--- a/ports/exiv2/portfile.cmake
+++ b/ports/exiv2/portfile.cmake
@@ -1,22 +1,18 @@
#https://github.com/Exiv2/exiv2/issues/1063
vcpkg_fail_port_install(ON_TARGET "uwp")
-if("xmp" IN_LIST FEATURES)
- set(EXPAT_PATCH ${CMAKE_CURRENT_LIST_DIR}/expat.patch)
-endif()
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO Exiv2/exiv2
REF 194bb65ac568a5435874c9d9d73b1c8a68e4edec #v0.27.3
SHA512 35a5a41e0a6cfe04d1ed005c8116ad4430516402b925db3d4f719e2385e2cfb09359eb7ab51853bc560138f221900778cd2e2d39f108c513b3e7d22dbb9bf503
HEAD_REF master
- PATCHES ${EXPAT_PATCH}
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
unicode EXIV2_ENABLE_WIN_UNICODE
xmp EXIV2_ENABLE_XMP
+ video EXIV2_ENABLE_VIDEO
)
if("unicode" IN_LIST FEATURES AND NOT VCPKG_TARGET_IS_WINDOWS)
diff --git a/ports/expat/CONTROL b/ports/expat/CONTROL
index 53474ae2b..2bfc11ab7 100644
--- a/ports/expat/CONTROL
+++ b/ports/expat/CONTROL
@@ -1,4 +1,4 @@
Source: expat
-Version: 2.2.9
+Version: 2020-08-18
Homepage: https://github.com/libexpat/libexpat
-Description: XML parser library written in C \ No newline at end of file
+Description: XML parser library written in C
diff --git a/ports/expat/fix-find-package-by-cmake.patch b/ports/expat/fix-find-package-by-cmake.patch
deleted file mode 100644
index 830327944..000000000
--- a/ports/expat/fix-find-package-by-cmake.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt
-index 2084424..f3b9207 100644
---- a/expat/CMakeLists.txt
-+++ b/expat/CMakeLists.txt
-@@ -269,6 +269,10 @@ if(EXPAT_WITH_LIBBSD)
- target_link_libraries(${_EXPAT_TARGET} ${LIB_BSD})
- endif()
-
-+target_include_directories(${_EXPAT_TARGET} INTERFACE
-+ $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include>
-+ $<INSTALL_INTERFACE:include>)
-+
- set(LIBCURRENT 7) # sync
- set(LIBREVISION 11) # with
- set(LIBAGE 6) # configure.ac!
-@@ -490,7 +494,7 @@ configure_package_config_file(
- cmake/expat-config.cmake.in
- cmake/expat-config.cmake
- INSTALL_DESTINATION
-- ${CMAKE_INSTALL_LIBDIR}/cmake/expat-${PROJECT_VERSION}/
-+ ${CMAKE_INSTALL_LIBDIR}/cmake/expat/
- )
- write_basic_package_version_file(
- cmake/expat-config-version.cmake
-@@ -507,13 +511,13 @@ expat_install(
- ${CMAKE_CURRENT_BINARY_DIR}/cmake/expat-config.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/cmake/expat-config-version.cmake
- DESTINATION
-- ${CMAKE_INSTALL_LIBDIR}/cmake/expat-${PROJECT_VERSION}/
-+ ${CMAKE_INSTALL_LIBDIR}/cmake/expat/
- )
- expat_install(
- EXPORT
- expat
- DESTINATION
-- ${CMAKE_INSTALL_LIBDIR}/cmake/expat-${PROJECT_VERSION}/
-+ ${CMAKE_INSTALL_LIBDIR}/cmake/expat/
- NAMESPACE
- expat::
- )
diff --git a/ports/expat/pkgconfig.patch b/ports/expat/pkgconfig.patch
new file mode 100644
index 000000000..401daf737
--- /dev/null
+++ b/ports/expat/pkgconfig.patch
@@ -0,0 +1,15 @@
+diff --git a/expat/CMakeLists.txt b/expat/CMakeLists.txt
+index a67f081b1..cc220f2a1 100644
+--- a/expat/CMakeLists.txt
++++ b/expat/CMakeLists.txt
+@@ -294,7 +294,9 @@ expat_install(FILES lib/expat.h lib/expat_external.h DESTINATION ${CMAKE_INSTALL
+ #
+ # pkg-config file
+ #
++string(TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE_UPPER)
++set(_EXPAT_OUTPUT_NAME ${_EXPAT_OUTPUT_NAME}${CMAKE_${BUILD_TYPE_UPPER}_POSTFIX})
+-if(NOT MSVC)
++if(1)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\${prefix}")
+ set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
diff --git a/ports/expat/portfile.cmake b/ports/expat/portfile.cmake
index 1414344be..252d0f8ef 100644
--- a/ports/expat/portfile.cmake
+++ b/ports/expat/portfile.cmake
@@ -1,11 +1,11 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libexpat/libexpat
- REF a7bc26b69768f7fb24f0c7976fae24b157b85b13 #tag 2.2.9
- SHA512 18842d5c9ff89654c5beeb9daba7ff5a911da318d419735fb14a5acbe0d1b4ac07077822c70cfa5c845892bcec2d72f8f265b9a259fe459092864f4d1754f8dd
+ REF c092d40c300c6d219cb3b111932a824022265370 #Head from commit 2020-08-18
+ SHA512 5a5d41b500f5602a32aea8f4e15593e639206bb3f97553497e80b2975360cac88ac90386f5efc11728614f24bbb620fb908a3c8ca71c9e7b312f6157b2477afe
HEAD_REF master
PATCHES
- fix-find-package-by-cmake.patch
+ pkgconfig.patch
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
@@ -26,17 +26,12 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/expat)
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/expat-2.2.9)
+vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
-file(GLOB EXE ${CURRENT_PACKAGES_DIR}/bin/*.exe)
-file(GLOB DEBUG_EXE ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
-if(EXE OR DEBUG_EXE)
- file(REMOVE ${EXE} ${DEBUG_EXE})
-endif()
-
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/expat_external.h
"! defined(XML_STATIC)"
@@ -47,4 +42,6 @@ endif()
vcpkg_copy_pdbs()
#Handle copyright
-file(INSTALL ${SOURCE_PATH}/expat/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/expat/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/expat/vcpkg-cmake-wrapper.cmake b/ports/expat/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..4d3e9e05d
--- /dev/null
+++ b/ports/expat/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,27 @@
+include(SelectLibraryConfigurations)
+
+set(EXPATNAMES expat expatw libexpat libexpatw)
+set(DEBUGNAMES)
+foreach(_CRT "" MT MD)
+ foreach(name IN LISTS EXPATNAMES)
+ list(APPEND EXPATNAMES ${name}${_CRT})
+ list(APPEND DEBUGNAMES ${name}d${_CRT})
+ endforeach()
+endforeach()
+
+find_library(EXPAT_LIBRARY_DEBUG NAMES ${DEBUGNAMES} ${EXPATNAMES} NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH)
+find_library(EXPAT_LIBRARY_RELEASE NAMES ${EXPATNAMES} NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
+select_library_configurations(EXPAT)
+set(EXPAT_LIBRARY "${EXPAT_LIBRARIES}" CACHE STRING "" FORCE)
+_find_package(${ARGS})
+if(EXPAT_FOUND AND TARGET EXPAT::EXPAT)
+ if(EXPAT_LIBRARY_DEBUG)
+ set_target_properties(EXPAT::EXPAT PROPERTIES IMPORTED_LOCATION_DEBUG "${EXPAT_LIBRARY_DEBUG}")
+ endif()
+ if(EXPAT_LIBRARY_RELEASE)
+ set_target_properties(EXPAT::EXPAT PROPERTIES IMPORTED_LOCATION_RELEASE "${EXPAT_LIBRARY_RELEASE}")
+ endif()
+endif()
+
+unset(EXPATNAMES)
+unset(DEBUGNAMES) \ No newline at end of file
diff --git a/ports/ffmpeg/CONTROL b/ports/ffmpeg/CONTROL
index 44f63079c..c9ea04fa4 100644
--- a/ports/ffmpeg/CONTROL
+++ b/ports/ffmpeg/CONTROL
@@ -1,6 +1,6 @@
Source: ffmpeg
Version: 4.2
-Port-Version: 20
+Port-Version: 21
Homepage: https://ffmpeg.org
Description: a library to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.
FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations.
diff --git a/ports/ffmpeg/FindFFMPEG.cmake.in b/ports/ffmpeg/FindFFMPEG.cmake.in
index 5eee6e73f..778666a75 100644
--- a/ports/ffmpeg/FindFFMPEG.cmake.in
+++ b/ports/ffmpeg/FindFFMPEG.cmake.in
@@ -33,7 +33,10 @@ set(FFMPEG_VERSION "4.2")
find_dependency(Threads)
if(UNIX)
- list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS -pthread -lX11)
+ list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS -pthread)
+endif()
+if(UNIX AND NOT APPLE)
+ list(APPEND FFMPEG_PLATFORM_DEPENDENT_LIBS -lX11)
endif()
if(@ENABLE_BZIP2@)
@@ -206,10 +209,12 @@ macro(FFMPEG_FIND varname shortname headername)
endif()
if(NOT FFMPEG_${varname}_LIBRARY)
find_library(FFMPEG_${varname}_LIBRARY_RELEASE NAMES ${shortname} PATHS ${_IMPORT_PREFIX}/lib/ NO_DEFAULT_PATH)
- find_library(FFMPEG_${varname}_LIBRARY_DEBUG NAMES ${shortname} PATHS ${_IMPORT_PREFIX}/debug/lib/ NO_DEFAULT_PATH)
+ find_library(FFMPEG_${varname}_LIBRARY_DEBUG NAMES ${shortname}d ${shortname} PATHS ${_IMPORT_PREFIX}/debug/lib/ NO_DEFAULT_PATH)
get_filename_component(FFMPEG_${varname}_LIBRARY_RELEASE_DIR ${FFMPEG_${varname}_LIBRARY_RELEASE} DIRECTORY)
get_filename_component(FFMPEG_${varname}_LIBRARY_DEBUG_DIR ${FFMPEG_${varname}_LIBRARY_DEBUG} DIRECTORY)
- select_library_configurations(FFMPEG_${varname})
+ #select_library_configurations(FFMPEG_${varname})
+ set(FFMPEG_${varname}_LIBRARY "$<$<CONFIG:Debug>:${FFMPEG_${varname}_LIBRARY_DEBUG}>$<$<CONFIG:Release>:${FFMPEG_${varname}_LIBRARY_RELEASE}>" CACHE STRING "")
+ set(FFMPEG_${varname}_LIBRARIES ${FFMPEG_${varname}_LIBRARY} CACHE STRING "")
endif()
if (FFMPEG_${varname}_LIBRARY AND FFMPEG_${varname}_INCLUDE_DIRS)
set(FFMPEG_${varname}_FOUND TRUE BOOL)
@@ -277,6 +282,29 @@ endif()
if (FFMPEG_libavutil_FOUND)
list(REMOVE_DUPLICATES FFMPEG_INCLUDE_DIRS)
list(REMOVE_DUPLICATES FFMPEG_LIBRARY_DIRS)
+ set(FFMPEG_libavutil_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+
+ if(FFMPEG_libavcodec_FOUND)
+ set(FFMPEG_libavcodec_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
+ if(FFMPEG_libavdevice_FOUND)
+ set(FFMPEG_libavdevice_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
+ if(FFMPEG_libavfilter_FOUND)
+ set(FFMPEG_libavfilter_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
+ if(FFMPEG_libavformat_FOUND)
+ set(FFMPEG_libavformat_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
+ if(FFMPEG_libavresample_FOUND)
+ set(FFMPEG_libavresample_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
+ if(FFMPEG_libswresample_FOUND)
+ set(FFMPEG_libswresample_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
+ if(FFMPEG_libswscale_FOUND)
+ set(FFMPEG_libswscale_VERSION "${FFMPEG_VERSION}" CACHE STRING "")
+ endif()
list(APPEND FFMPEG_LIBRARIES
${FFMPEG_PLATFORM_DEPENDENT_LIBS}
diff --git a/ports/fluidlite/CONTROL b/ports/fluidlite/CONTROL
new file mode 100644
index 000000000..b591dcf02
--- /dev/null
+++ b/ports/fluidlite/CONTROL
@@ -0,0 +1,4 @@
+Source: fluidlite
+Version: 2020-08-27
+Homepage: https://github.com/divideconcept/FluidLite
+Description: FluidLite is a very light version of FluidSynth designed to be hardware, platform and external dependency independant.
diff --git a/ports/fluidlite/portfile.cmake b/ports/fluidlite/portfile.cmake
new file mode 100644
index 000000000..707fcd720
--- /dev/null
+++ b/ports/fluidlite/portfile.cmake
@@ -0,0 +1,31 @@
+if(EXISTS "${CURRENT_INSTALLED_DIR}/include/fluidsynth/settings.h")
+ message(FATAL_ERROR "Can't build fluidlite if fluidsynth is installed. Please remove fluidsynth, and try to install fluidlite again if you need it.")
+endif()
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO divideconcept/FluidLite
+ REF fdd05bad03cdb24d1f78b5fe3453842890c1b0e8
+ SHA512 8118bec2cb5ee48b8064ed2111610f1917ee8e6f1dc213121b2311d056da21d7f618ef50735e7653d2cccf1e96652f3ccf026101fccb9863448008918add53e0
+ HEAD_REF master
+)
+
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" FLUIDLITE_BUILD_STATIC)
+string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" FLUIDLITE_BUILD_SHARED)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DFLUIDLITE_BUILD_STATIC=${FLUIDLITE_BUILD_STATIC}
+ -DFLUIDLITE_BUILD_SHARED=${FLUIDLITE_BUILD_SHARED}
+ -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=ON
+)
+
+vcpkg_install_cmake()
+
+# Remove unnecessary files
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/fontconfig/CMakeLists.txt b/ports/fontconfig/CMakeLists.txt
index 366436e49..61197ed92 100644
--- a/ports/fontconfig/CMakeLists.txt
+++ b/ports/fontconfig/CMakeLists.txt
@@ -52,11 +52,7 @@ else()
target_include_directories(fontconfig PRIVATE ${FC_INCLUDE_DIR}/unix)
endif()
-if(WIN32 AND NOT MINGW)
- target_link_libraries(fontconfig PRIVATE unofficial::iconv::libiconv Freetype::Freetype expat::libexpat)
-else()
- target_link_libraries(fontconfig PRIVATE unofficial::iconv::libiconv Freetype::Freetype expat::expat)
-endif()
+target_link_libraries(fontconfig PRIVATE unofficial::iconv::libiconv Freetype::Freetype expat::expat)
install(TARGETS fontconfig
EXPORT fontconfig-targets
diff --git a/ports/fontconfig/CONTROL b/ports/fontconfig/CONTROL
index 80554738c..e541f560a 100644
--- a/ports/fontconfig/CONTROL
+++ b/ports/fontconfig/CONTROL
@@ -1,6 +1,6 @@
Source: fontconfig
Version: 2.12.4
-Port-Version: 12
+Port-Version: 13
Homepage: https://www.freedesktop.org/software/fontconfig/front.html
Description: Library for configuring and customizing font access.
Build-Depends: freetype, expat, libiconv, dirent
diff --git a/ports/freetype/CONTROL b/ports/freetype/CONTROL
index dcec495d7..072382ebc 100644
--- a/ports/freetype/CONTROL
+++ b/ports/freetype/CONTROL
@@ -1,6 +1,6 @@
Source: freetype
Version: 2.10.2
-Port-Version: 2
+Port-Version: 3
Build-Depends: zlib, brotli
Homepage: https://www.freetype.org/
Description: A library to render fonts.
diff --git a/ports/freetype/portfile.cmake b/ports/freetype/portfile.cmake
index f62f34728..b0152b31c 100644
--- a/ports/freetype/portfile.cmake
+++ b/ports/freetype/portfile.cmake
@@ -66,7 +66,7 @@ if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc")
string(REPLACE "-I\${includedir}/freetype2" "-I\${includedir}" _contents "${_contents}")
file(WRITE "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/freetype2.pc" "${_contents}")
endif()
-vcpkg_fixup_pkgconfig()
+vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
diff --git a/ports/gdal/portfile.cmake b/ports/gdal/portfile.cmake
index 7fe2a3c7c..dd29ce636 100644
--- a/ports/gdal/portfile.cmake
+++ b/ports/gdal/portfile.cmake
@@ -211,9 +211,11 @@ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
list(APPEND NMAKE_OPTIONS CURL_CFLAGS=-DCURL_STATICLIB)
+ list(APPEND NMAKE_OPTIONS DLLBUILD=0)
else()
# Enables PDBs for release and debug builds
list(APPEND NMAKE_OPTIONS WITH_PDB=1)
+ list(APPEND NMAKE_OPTIONS DLLBUILD=1)
endif()
if (VCPKG_CRT_LINKAGE STREQUAL static)
@@ -254,7 +256,7 @@ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
"PG_LIB=${PGSQL_LIBRARY_DBG} Secur32.lib Shell32.lib Advapi32.lib Crypt32.lib Gdi32.lib ${OPENSSL_LIBRARY_DBG}"
DEBUG=1
)
-
+
# Begin build process
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
################
@@ -304,12 +306,12 @@ if (VCPKG_TARGET_IS_WINDOWS OR VCPKG_TARGET_IS_UWP)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
- file(COPY ${SOURCE_PATH_RELEASE}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
+ file(COPY ${SOURCE_PATH_RELEASE}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
- file(COPY ${SOURCE_PATH_DEBUG}/gdal_i.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_i.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdal_id.lib)
+ file(COPY ${SOURCE_PATH_DEBUG}/gdal.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/gdal.lib ${CURRENT_PACKAGES_DIR}/debug/lib/gdald.lib)
endif()
else()
@@ -421,5 +423,8 @@ else() # Other build system
message(FATAL_ERROR "Unsupport build system.")
endif()
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
+configure_file(${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake ${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake @ONLY)
+
# Handle copyright
-configure_file(${SOURCE_PATH_RELEASE}/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY) \ No newline at end of file
+configure_file(${SOURCE_PATH_RELEASE}/LICENSE.TXT ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright COPYONLY)
diff --git a/ports/gdal/usage b/ports/gdal/usage
new file mode 100644
index 000000000..2ee0072ac
--- /dev/null
+++ b/ports/gdal/usage
@@ -0,0 +1,5 @@
+The package GDAL provides CMake targets:
+
+ find_package(GDAL REQUIRED)
+ target_include_directories(main PRIVATE ${GDAL_INCLUDE_DIR})
+ target_link_libraries(main PRIVATE ${GDAL_LIBRARY}) \ No newline at end of file
diff --git a/ports/gdal/vcpkg-cmake-wrapper.cmake b/ports/gdal/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..ba3c6926e
--- /dev/null
+++ b/ports/gdal/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,12 @@
+include(FindPackageHandleStandardArgs)
+include(SelectLibraryConfigurations)
+
+find_path(GDAL_INCLUDE_DIR NAMES gdal.h HINTS ${CURRENT_INSTALLED_DIR})
+
+find_library(GDAL_LIBRARY_DEBUG NAMES gdald libgdal NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH REQUIRED)
+find_library(GDAL_LIBRARY_RELEASE NAMES gdal libgdal NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH REQUIRED)
+
+select_library_configurations(GDAL)
+
+set(GDAL_INCLUDE_DIR ${GDAL_INCLUDE_DIR})
+set(GDAL_LIBRARY ${GDAL_LIBRARY}) \ No newline at end of file
diff --git a/ports/gdcm/CONTROL b/ports/gdcm/CONTROL
index e6d6b052d..aafb13a8d 100644
--- a/ports/gdcm/CONTROL
+++ b/ports/gdcm/CONTROL
@@ -1,6 +1,6 @@
Source: gdcm
Version: 3.0.5
-Port-Version: 1
+Port-Version: 2
Homepage: https://github.com/malaterre/GDCM
Description: Grassroots DICOM library
Build-Depends: zlib, expat, openjpeg
diff --git a/ports/gdcm/portfile.cmake b/ports/gdcm/portfile.cmake
index e9afedd3c..3edb205d7 100644
--- a/ports/gdcm/portfile.cmake
+++ b/ports/gdcm/portfile.cmake
@@ -12,7 +12,6 @@ vcpkg_from_github(
use-openjpeg-config.patch
fix-share-path.patch
Fix-Cmake_DIR.patch
- use-expat-config.patch
)
file(REMOVE ${SOURCE_PATH}/CMake/FindOpenJPEG.cmake)
diff --git a/ports/gdcm/use-expat-config.patch b/ports/gdcm/use-expat-config.patch
deleted file mode 100644
index 94a54e6c7..000000000
--- a/ports/gdcm/use-expat-config.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 32786db..4215d25 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -426,7 +426,7 @@ endif()
-
- if(GDCM_USE_SYSTEM_EXPAT)
- # If user say so, then this is a requirement !
-- find_package(EXPAT REQUIRED)
-+ find_package(expat CONFIG REQUIRED)
- set(GDCM_EXPAT_LIBRARIES ${EXPAT_LIBRARIES})
- else()
- set(GDCM_EXPAT_LIBRARIES "gdcmexpat")
diff --git a/ports/geogram/CONTROL b/ports/geogram/CONTROL
index 8661aa1e4..83b210ac3 100644
--- a/ports/geogram/CONTROL
+++ b/ports/geogram/CONTROL
@@ -1,8 +1,9 @@
Source: geogram
Version: 1.7.5
+Port-Version: 1
Homepage: https://gforge.inria.fr/projects/geogram/
Description: Geogram is a programming library of geometric algorithms.
-Build-Depends: openblas (!osx), lapack
+Build-Depends: openblas, lapack
Feature: graphics
Description: Build viewers and geogram_gfx library.
diff --git a/ports/grpc/00001-fix-uwp.patch b/ports/grpc/00001-fix-uwp.patch
index eee4f14d1..a66f03f49 100644
--- a/ports/grpc/00001-fix-uwp.patch
+++ b/ports/grpc/00001-fix-uwp.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8561c67..84de29f 100644
+index a067308142..086d4c5837 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -150,6 +150,9 @@ if(UNIX)
+@@ -153,6 +153,9 @@ if(UNIX)
endif()
if(WIN32)
set(_gRPC_PLATFORM_WINDOWS ON)
@@ -12,7 +12,7 @@ index 8561c67..84de29f 100644
endif()
# Use C99 standard
-@@ -174,6 +177,9 @@ if(MSVC)
+@@ -191,6 +194,9 @@ if(MSVC)
set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4267")
# TODO(jtattermusch): needed to build boringssl with VS2017, revisit later
set(_gRPC_C_CXX_FLAGS "${_gRPC_C_CXX_FLAGS} /wd4987 /wd4774 /wd4819 /wd4996 /wd4619")
@@ -20,9 +20,9 @@ index 8561c67..84de29f 100644
+ add_definitions(-DGRPC_ARES=0)
+ endif()
endif()
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${_gRPC_C_CXX_FLAGS}")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${_gRPC_C_CXX_FLAGS}")
-@@ -237,6 +243,10 @@ file(MAKE_DIRECTORY ${_gRPC_PROTO_GENS_DIR})
+ if (MINGW)
+ add_definitions(-D_WIN32_WINNT=0x600)
+@@ -258,6 +264,10 @@ file(MAKE_DIRECTORY ${_gRPC_PROTO_GENS_DIR})
# ``.proto`` files
#
function(protobuf_generate_grpc_cpp)
@@ -33,7 +33,7 @@ index 8561c67..84de29f 100644
if(NOT ARGN)
message(SEND_ERROR "Error: PROTOBUF_GENERATE_GRPC_CPP() called without any proto files")
return()
-@@ -309,6 +319,7 @@ if (gRPC_BUILD_GRPC_RUBY_PLUGIN)
+@@ -330,6 +340,7 @@ if (gRPC_BUILD_GRPC_RUBY_PLUGIN)
list(APPEND _gRPC_PLUGIN_LIST grpc_ruby_plugin)
endif ()
@@ -41,7 +41,7 @@ index 8561c67..84de29f 100644
add_custom_target(plugins
DEPENDS ${_gRPC_PLUGIN_LIST}
)
-@@ -327,6 +338,7 @@ add_custom_target(tools_cxx
+@@ -348,6 +359,7 @@ add_custom_target(tools_cxx
add_custom_target(tools
DEPENDS tools_c tools_cxx)
@@ -50,7 +50,7 @@ index 8561c67..84de29f 100644
protobuf_generate_grpc_cpp(
src/proto/grpc/channelz/channelz.proto
diff --git a/src/core/lib/iomgr/resource_quota.cc b/src/core/lib/iomgr/resource_quota.cc
-index 0fc0279..aaf2b09 100644
+index dbe84e3466..cda40b6435 100644
--- a/src/core/lib/iomgr/resource_quota.cc
+++ b/src/core/lib/iomgr/resource_quota.cc
@@ -945,7 +945,7 @@ bool grpc_resource_user_alloc(grpc_resource_user* resource_user, size_t size,
@@ -63,7 +63,7 @@ index 0fc0279..aaf2b09 100644
bool was_zero_or_negative = resource_user->free_pool <= 0;
resource_user->free_pool += static_cast<int64_t>(size);
diff --git a/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc b/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
-index 59432cf..fed574d 100644
+index 59432cff36..fed574d5bc 100644
--- a/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
+++ b/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
@@ -39,6 +39,7 @@ bool check_bios_data(const char*) { return false; }
diff --git a/ports/grpc/00002-static-linking-in-linux.patch b/ports/grpc/00002-static-linking-in-linux.patch
index 371873888..80ec441b3 100644
--- a/ports/grpc/00002-static-linking-in-linux.patch
+++ b/ports/grpc/00002-static-linking-in-linux.patch
@@ -1,16 +1,16 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 84de29f..0c6dc0e 100644
+index 086d4c5837..e556a99b47 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -165,6 +165,11 @@ set(CMAKE_CXX_EXTENSIONS OFF)
-
- set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
+@@ -183,6 +183,11 @@ if (NOT DEFINED CMAKE_POSITION_INDEPENDENT_CODE)
+ endif()
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
-+
+
+if (gRPC_STATIC_LINKING AND NOT _gRPC_PLATFORM_WINDOWS)
+ # Force to static link
+ set(CMAKE_EXE_LINKER_FLAGS "-Bstatic")
+endif()
-
++
if(MSVC)
include(cmake/msvc_static_runtime.cmake)
+ add_definitions(-D_WIN32_WINNT=0x600 -D_SCL_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -D_WINSOCK_DEPRECATED_NO_WARNINGS)
diff --git a/ports/grpc/00003-undef-base64-macro.patch b/ports/grpc/00003-undef-base64-macro.patch
index b4beb932f..3f540a534 100644
--- a/ports/grpc/00003-undef-base64-macro.patch
+++ b/ports/grpc/00003-undef-base64-macro.patch
@@ -1,5 +1,5 @@
diff --git a/src/core/lib/transport/transport.cc b/src/core/lib/transport/transport.cc
-index 6adcd8d..20745df 100644
+index 99a32980aa..f55db67113 100644
--- a/src/core/lib/transport/transport.cc
+++ b/src/core/lib/transport/transport.cc
@@ -97,6 +97,8 @@ void grpc_stream_ref_init(grpc_stream_refcount* refcount, int /*initial_refs*/,
diff --git a/ports/grpc/00004-link-gdi32-on-windows.patch b/ports/grpc/00004-link-gdi32-on-windows.patch
index 2a6fcea31..1e3e4cf5c 100644
--- a/ports/grpc/00004-link-gdi32-on-windows.patch
+++ b/ports/grpc/00004-link-gdi32-on-windows.patch
@@ -1,11 +1,11 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c4057b3..a6a0f23 100644
+index e556a99b47..a337149f1f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -220,7 +220,7 @@ elseif(UNIX)
+@@ -250,7 +250,7 @@ elseif(UNIX)
endif()
- if(WIN32 AND MSVC)
+ if(WIN32)
- set(_gRPC_BASELIB_LIBRARIES wsock32 ws2_32 crypt32)
+ set(_gRPC_BASELIB_LIBRARIES wsock32 ws2_32 crypt32 gdi32)
endif()
diff --git a/ports/grpc/00005-fix-uwp-error.patch b/ports/grpc/00005-fix-uwp-error.patch
index 93ac05d1b..ad890cf00 100644
--- a/ports/grpc/00005-fix-uwp-error.patch
+++ b/ports/grpc/00005-fix-uwp-error.patch
@@ -1,8 +1,8 @@
diff --git a/src/core/lib/slice/slice.cc b/src/core/lib/slice/slice.cc
-index c0e2164..331e54c 100644
+index 0dacbfef3e..310bf1de1b 100644
--- a/src/core/lib/slice/slice.cc
+++ b/src/core/lib/slice/slice.cc
-@@ -214,6 +214,7 @@ grpc_slice grpc_slice_from_moved_buffer(grpc_core::UniquePtr<char> p,
+@@ -234,6 +234,7 @@ grpc_slice grpc_slice_from_moved_buffer(grpc_core::UniquePtr<char> p,
size_t len) {
uint8_t* ptr = reinterpret_cast<uint8_t*>(p.get());
grpc_slice slice;
@@ -10,16 +10,25 @@ index c0e2164..331e54c 100644
if (len <= sizeof(slice.data.inlined.bytes)) {
slice.refcount = nullptr;
slice.data.inlined.length = len;
+@@ -253,7 +254,7 @@ grpc_slice grpc_slice_from_moved_string(grpc_core::UniquePtr<char> p) {
+ }
+
+ grpc_slice grpc_slice_from_cpp_string(std::string str) {
+- grpc_slice slice;
++ grpc_slice slice = { 0 };
+ if (str.size() <= sizeof(slice.data.inlined.bytes)) {
+ slice.refcount = nullptr;
+ slice.data.inlined.length = str.size();
diff --git a/src/core/lib/surface/server.cc b/src/core/lib/surface/server.cc
-index 998eb6d..a6e26d3 100644
+index cab0cd56c4..2c88fd625b 100644
--- a/src/core/lib/surface/server.cc
+++ b/src/core/lib/surface/server.cc
-@@ -1095,7 +1095,7 @@ grpc_call_error queue_call_request(grpc_server* server, size_t cq_idx,
+@@ -1301,7 +1301,7 @@ grpc_call_error queue_call_request(grpc_server* server, size_t cq_idx,
GRPC_ERROR_CREATE_FROM_STATIC_STRING("Server Shutdown"));
return GRPC_CALL_OK;
}
- RequestMatcherInterface* rm;
+ RequestMatcherInterface* rm = nullptr;
switch (rc->type) {
- case BATCH_CALL:
- rm = server->unregistered_request_matcher;
+ case RequestedCallType::BATCH_CALL:
+ rm = server->unregistered_request_matcher.get();
diff --git a/ports/grpc/00009-use-system-upb.patch b/ports/grpc/00009-use-system-upb.patch
index de6f07f5d..0c8c90cf6 100644
--- a/ports/grpc/00009-use-system-upb.patch
+++ b/ports/grpc/00009-use-system-upb.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5ec669e..f71a212 100644
+index a337149f1f..6baab5d37b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -81,6 +81,9 @@ set_property(CACHE gRPC_SSL_PROVIDER PROPERTY STRINGS "module" "package")
+@@ -84,6 +84,9 @@ set_property(CACHE gRPC_SSL_PROVIDER PROPERTY STRINGS "module" "package")
set(gRPC_PROTOBUF_PROVIDER "module" CACHE STRING "Provider of protobuf library")
set_property(CACHE gRPC_PROTOBUF_PROVIDER PROPERTY STRINGS "module" "package")
@@ -12,7 +12,7 @@ index 5ec669e..f71a212 100644
set(gRPC_PROTOBUF_PACKAGE_TYPE "" CACHE STRING "Algorithm for searching protobuf package")
set_property(CACHE gRPC_PROTOBUF_PACKAGE_TYPE PROPERTY STRINGS "CONFIG" "MODULE")
-@@ -1765,7 +1768,6 @@ target_link_libraries(grpc
+@@ -1807,7 +1810,6 @@ target_link_libraries(grpc
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
address_sorting
@@ -20,7 +20,7 @@ index 5ec669e..f71a212 100644
absl::optional
absl::strings
absl::inlined_vector
-@@ -1844,7 +1846,6 @@ target_link_libraries(grpc_csharp_ext
+@@ -1887,7 +1889,6 @@ target_link_libraries(grpc_csharp_ext
grpc
gpr
address_sorting
@@ -28,7 +28,7 @@ index 5ec669e..f71a212 100644
)
-@@ -2351,7 +2352,6 @@ target_link_libraries(grpc_unsecure
+@@ -2409,7 +2410,6 @@ target_link_libraries(grpc_unsecure
${_gRPC_ALLTARGETS_LIBRARIES}
gpr
address_sorting
@@ -36,7 +36,7 @@ index 5ec669e..f71a212 100644
absl::optional
absl::strings
absl::inlined_vector
-@@ -2545,7 +2545,6 @@ target_link_libraries(grpc++
+@@ -2606,7 +2606,6 @@ target_link_libraries(grpc++
grpc
gpr
address_sorting
@@ -44,7 +44,7 @@ index 5ec669e..f71a212 100644
)
foreach(_hdr
-@@ -2821,7 +2820,6 @@ target_link_libraries(grpc++_alts
+@@ -2876,7 +2875,6 @@ target_link_libraries(grpc++_alts
grpc
gpr
address_sorting
@@ -52,7 +52,7 @@ index 5ec669e..f71a212 100644
)
foreach(_hdr
-@@ -2889,7 +2887,6 @@ target_link_libraries(grpc++_error_details
+@@ -2945,7 +2943,6 @@ target_link_libraries(grpc++_error_details
grpc
gpr
address_sorting
@@ -60,7 +60,7 @@ index 5ec669e..f71a212 100644
)
foreach(_hdr
-@@ -2962,7 +2959,6 @@ target_link_libraries(grpc++_reflection
+@@ -3019,7 +3016,6 @@ target_link_libraries(grpc++_reflection
grpc
gpr
address_sorting
@@ -68,7 +68,7 @@ index 5ec669e..f71a212 100644
)
foreach(_hdr
-@@ -3239,7 +3235,6 @@ target_link_libraries(grpc++_unsecure
+@@ -3300,7 +3296,6 @@ target_link_libraries(grpc++_unsecure
grpc_unsecure
gpr
address_sorting
@@ -76,7 +76,7 @@ index 5ec669e..f71a212 100644
)
foreach(_hdr
-@@ -3586,7 +3581,6 @@ target_link_libraries(grpcpp_channelz
+@@ -3642,7 +3637,6 @@ target_link_libraries(grpcpp_channelz
grpc
gpr
address_sorting
@@ -84,7 +84,7 @@ index 5ec669e..f71a212 100644
)
foreach(_hdr
-@@ -3613,6 +3607,7 @@ endif()
+@@ -3669,6 +3663,7 @@ endif()
endif()
@@ -92,7 +92,7 @@ index 5ec669e..f71a212 100644
add_library(upb
third_party/upb/upb/decode.c
third_party/upb/upb/encode.c
-@@ -3662,7 +3657,7 @@ if(gRPC_INSTALL)
+@@ -3719,7 +3714,7 @@ if(gRPC_INSTALL)
ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
)
endif()
@@ -102,19 +102,19 @@ index 5ec669e..f71a212 100644
add_executable(check_epollexclusive
diff --git a/cmake/gRPCConfig.cmake.in b/cmake/gRPCConfig.cmake.in
-index 5bfa73c..db0865e 100644
+index 3623f4aa5e..df6ced560e 100644
--- a/cmake/gRPCConfig.cmake.in
+++ b/cmake/gRPCConfig.cmake.in
-@@ -7,6 +7,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules)
- @_gRPC_FIND_SSL@
+@@ -8,6 +8,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules)
@_gRPC_FIND_CARES@
@_gRPC_FIND_ABSL@
+ @_gRPC_FIND_RE2@
+@_gRPC_FIND_UPB@
# Targets
include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake)
diff --git a/cmake/upb.cmake b/cmake/upb.cmake
-index 2c0ab84..07dd613 100644
+index 2c0ab84e67..07dd613a78 100644
--- a/cmake/upb.cmake
+++ b/cmake/upb.cmake
@@ -12,9 +12,18 @@
diff --git a/ports/grpc/00010-add-feature-absl-sync.patch b/ports/grpc/00010-add-feature-absl-sync.patch
index 8fb59a60e..8940cd2d6 100644
--- a/ports/grpc/00010-add-feature-absl-sync.patch
+++ b/ports/grpc/00010-add-feature-absl-sync.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f71a212..77cf3de 100644
+index 6baab5d37b..48bc6cf0de 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -1771,6 +1771,8 @@ target_link_libraries(grpc
+@@ -1813,6 +1813,8 @@ target_link_libraries(grpc
absl::optional
absl::strings
absl::inlined_vector
@@ -11,7 +11,7 @@ index f71a212..77cf3de 100644
)
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc "-framework CoreFoundation")
-@@ -2355,6 +2357,8 @@ target_link_libraries(grpc_unsecure
+@@ -2413,6 +2415,8 @@ target_link_libraries(grpc_unsecure
absl::optional
absl::strings
absl::inlined_vector
@@ -21,7 +21,7 @@ index f71a212..77cf3de 100644
if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
target_link_libraries(grpc_unsecure "-framework CoreFoundation")
diff --git a/cmake/abseil-cpp.cmake b/cmake/abseil-cpp.cmake
-index 078d495..b6f50bd 100644
+index 078d495417..b6f50bd14c 100644
--- a/cmake/abseil-cpp.cmake
+++ b/cmake/abseil-cpp.cmake
@@ -37,4 +37,7 @@ elseif(gRPC_ABSL_PROVIDER STREQUAL "package")
diff --git a/ports/grpc/00011-fix-csharp_plugin.patch b/ports/grpc/00011-fix-csharp_plugin.patch
index c2d177113..67450425b 100644
--- a/ports/grpc/00011-fix-csharp_plugin.patch
+++ b/ports/grpc/00011-fix-csharp_plugin.patch
@@ -1,8 +1,8 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 77cf3de..8bceae6 100644
+index 48bc6cf0de..399aff7d1e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -1812,10 +1812,14 @@ endif()
+@@ -1854,10 +1854,14 @@ endif()
if(gRPC_BUILD_CSHARP_EXT)
@@ -18,11 +18,11 @@ index 77cf3de..8bceae6 100644
set_target_properties(grpc_csharp_ext PROPERTIES
VERSION ${gRPC_CORE_VERSION}
SOVERSION ${gRPC_CORE_SOVERSION}
-@@ -1829,6 +1833,12 @@ if(WIN32 AND MSVC)
+@@ -1871,6 +1875,12 @@ if(WIN32 AND MSVC)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/grpc_csharp_ext.pdb
DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
)
-+
++
+ install(TARGETS grpc_csharp_ext
+ RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
diff --git a/ports/grpc/CONTROL b/ports/grpc/CONTROL
index f62df066c..95f05177d 100644
--- a/ports/grpc/CONTROL
+++ b/ports/grpc/CONTROL
@@ -1,7 +1,6 @@
Source: grpc
-Version: 1.29.1
-Port-Version: 1
-Build-Depends: zlib, openssl, protobuf, c-ares (!uwp), upb, abseil
+Version: 1.31.1
+Build-Depends: zlib, openssl, protobuf, c-ares (!uwp), upb, abseil, re2
Homepage: https://github.com/grpc/grpc
Description: An RPC library and framework
diff --git a/ports/grpc/portfile.cmake b/ports/grpc/portfile.cmake
index cc8fe92be..79e344b54 100644
--- a/ports/grpc/portfile.cmake
+++ b/ports/grpc/portfile.cmake
@@ -5,8 +5,8 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO grpc/grpc
- REF 7d89dbb311f049b43bda7bbf6f7d7bf1b4c24419 #v1.29.1
- SHA512 403fa5e3f012786bb17ca32c760b6dfb22c5a5cfb473ba7fad657e26ab3986eb0203f7cbb501a8647fd5ef2571e5f4ee08c2c97d1dfda18ec5ab6a92c9fc3263
+ REF 7d7e4567625db7cfebf8969a225948097a3f9f89 #v1.31.1
+ SHA512 a348b8779f533c53b99c052264e0a008121087267bcf836fb2310819ab384effdc0996df031f407ee4bf8bb0cb37a81e061e65ab24ab7011ce6400de3808f5a4
HEAD_REF master
PATCHES
00001-fix-uwp.patch
@@ -52,12 +52,13 @@ vcpkg_configure_cmake(
-DgRPC_PROTOBUF_PROVIDER=package
-DgRPC_ABSL_PROVIDER=package
-DgRPC_UPB_PROVIDER=package
+ -DgRPC_RE2_PROVIDER=package
-DgRPC_PROTOBUF_PACKAGE_TYPE=CONFIG
-DgRPC_CARES_PROVIDER=${cares_CARES_PROVIDER}
-DgRPC_GFLAGS_PROVIDER=none
-DgRPC_BENCHMARK_PROVIDER=none
-DgRPC_INSTALL_CSHARP_EXT=OFF
- -DgRPC_INSTALL_BINDIR:STRING=tools/grpc
+ -DgRPC_INSTALL_BINDIR:STRING=bin
-DgRPC_INSTALL_LIBDIR:STRING=lib
-DgRPC_INSTALL_INCLUDEDIR:STRING=include
-DgRPC_INSTALL_CMAKEDIR:STRING=share/gRPC
@@ -68,10 +69,21 @@ vcpkg_install_cmake(ADD_BIN_TO_PATH)
vcpkg_fixup_cmake_targets(CONFIG_PATH share/gRPC TARGET_PATH share/gRPC)
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/grpc RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/grpc)
-file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools")
+if (gRPC_BUILD_CODEGEN)
+ vcpkg_copy_tools(
+ AUTO_CLEAN
+ TOOL_NAMES
+ grpc_php_plugin
+ grpc_python_plugin
+ grpc_node_plugin
+ grpc_objective_c_plugin
+ grpc_csharp_plugin
+ grpc_cpp_plugin
+ grpc_ruby_plugin
+ )
+endif()
# Ignore the C# extension DLL in bin/
SET(VCPKG_POLICY_EMPTY_PACKAGE enabled)
diff --git a/ports/grpc/snprintf.patch b/ports/grpc/snprintf.patch
index f658f9c4f..d1fd52e48 100644
--- a/ports/grpc/snprintf.patch
+++ b/ports/grpc/snprintf.patch
@@ -1,12 +1,12 @@
-diff --git a/src/core/tsi/alts/crypt/aes_gcm.cc b/src/core/tsi/alts/crypt/aes_gcm.cc
-index c638ce7..3dc3b2e 100644
---- a/src/core/tsi/alts/crypt/aes_gcm.cc
-+++ b/src/core/tsi/alts/crypt/aes_gcm.cc
-@@ -28,6 +28,7 @@
- #include <openssl/evp.h>
- #include <openssl/hmac.h>
- #include <string.h>
-+#include <cstdio>
-
- #include <grpc/support/alloc.h>
-
+diff --git a/src/core/tsi/alts/crypt/aes_gcm.cc b/src/core/tsi/alts/crypt/aes_gcm.cc
+index 02b1ac4492..191f462277 100644
+--- a/src/core/tsi/alts/crypt/aes_gcm.cc
++++ b/src/core/tsi/alts/crypt/aes_gcm.cc
+@@ -26,6 +26,7 @@
+ #include <openssl/evp.h>
+ #include <openssl/hmac.h>
+ #include <string.h>
++#include <cstdio>
+
+ #include <grpc/support/alloc.h>
+
diff --git a/ports/icu/CONTROL b/ports/icu/CONTROL
index 4ba1c8e96..5cbf72816 100644
--- a/ports/icu/CONTROL
+++ b/ports/icu/CONTROL
@@ -1,5 +1,5 @@
Source: icu
-Version: 67.1-2
+Version: 67.1-3
Homepage: http://icu-project.org/apiref/icu4c/
Description: Mature and widely used Unicode and localization library.
Supports: !(arm|uwp)
diff --git a/ports/icu/portfile.cmake b/ports/icu/portfile.cmake
index 82fd00464..20ca4dab1 100644
--- a/ports/icu/portfile.cmake
+++ b/ports/icu/portfile.cmake
@@ -169,8 +169,6 @@ file(REMOVE_RECURSE
${CURRENT_PACKAGES_DIR}/debug/include
${CURRENT_PACKAGES_DIR}/share
${CURRENT_PACKAGES_DIR}/debug/share
- ${CURRENT_PACKAGES_DIR}/lib/pkgconfig
- ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig
${CURRENT_PACKAGES_DIR}/lib/icu
${CURRENT_PACKAGES_DIR}/debug/lib/icud)
@@ -203,6 +201,15 @@ else()
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/sicu${MODULE}d.lib ${CURRENT_PACKAGES_DIR}/debug/lib/icu${MODULE}d.lib)
endif()
endforeach()
+
+ file(GLOB_RECURSE pkg_files LIST_DIRECTORIES false ${CURRENT_PACKAGES_DIR}/*.pc)
+ message(STATUS "${pkg_files}")
+ foreach(pkg_file IN LISTS pkg_files)
+ message(STATUS "${pkg_file}")
+ file(READ ${pkg_file} PKG_FILE)
+ string(REGEX REPLACE "-ls([^ \\t\\n]+)" "-l\\1" PKG_FILE "${PKG_FILE}" )
+ file(WRITE ${pkg_file} "${PKG_FILE}")
+ endforeach()
endif()
# force U_STATIC_IMPLEMENTATION macro
@@ -226,6 +233,7 @@ endif()
# Generates warnings about missing pdbs for icudt.dll
# This is expected because ICU database contains no executable code
vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES pthread m)
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
diff --git a/ports/imgui-sfml/CONTROL b/ports/imgui-sfml/CONTROL
index ee43509de..a792691ad 100644
--- a/ports/imgui-sfml/CONTROL
+++ b/ports/imgui-sfml/CONTROL
@@ -1,5 +1,5 @@
Source: imgui-sfml
-Version: 2.1-1
+Version: 2.1-2
Homepage: https://github.com/eliasdaler/imgui-sfml
Description: ImGui binding for use with SFML
-Build-Depends: sfml, imgui
+Build-Depends: sfml, imgui, opengl
diff --git a/ports/imgui-sfml/portfile.cmake b/ports/imgui-sfml/portfile.cmake
index d283a2624..aedb31ced 100644
--- a/ports/imgui-sfml/portfile.cmake
+++ b/ports/imgui-sfml/portfile.cmake
@@ -13,23 +13,9 @@ vcpkg_from_github(
004-fix-find-sfml.patch
)
-if (VCPKG_TARGET_IS_WINDOWS)
- file(GLOB SFML_DYNAMIC_LIBS "${CURRENT_INSTALLED_DIR}/bin/sfml-*")
-else()
- file(GLOB SFML_DYNAMIC_LIBS "${CURRENT_INSTALLED_DIR}/bin/libsfml-*")
-endif()
-
-if (SFML_DYNAMIC_LIBS)
- set(SFML_STATIC OFF)
-else()
- set(SFML_STATIC ON)
-endif()
-
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS
- -DSFML_STATIC_LIBRARIES=${SFML_STATIC}
)
vcpkg_install_cmake()
vcpkg_copy_pdbs()
diff --git a/ports/imgui/CONTROL b/ports/imgui/CONTROL
index e87894d5e..bee67cc00 100644
--- a/ports/imgui/CONTROL
+++ b/ports/imgui/CONTROL
@@ -1,6 +1,6 @@
Source: imgui
-Version: 1.77
-Port-Version: 3
+Version: 1.78
+Port-Version: 2
Homepage: https://github.com/ocornut/imgui
Description: Bloat-free Immediate Mode Graphical User interface for C++ with minimal dependencies.
@@ -70,3 +70,6 @@ Description: Make available Win32 binding
Feature: freetype
Description: Build font atlases using FreeType instead of stb_truetype
Build-Depends: freetype
+
+Feature: libigl-imgui
+Description: Install the libigl-imgui headers
diff --git a/ports/imgui/portfile.cmake b/ports/imgui/portfile.cmake
index 7b8cf3026..1da67c911 100644
--- a/ports/imgui/portfile.cmake
+++ b/ports/imgui/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO ocornut/imgui
- REF v1.77
- SHA512 d5ebf4bb5e1ce83b226f2e68b3afe0f0abaeb55245fedf754e5453afd8d1df4dac8b5c47fc284c2588b40d05a55fc191b5e55c7be279c5e5e23f7c5b70150546
+ REF v1.78
+ SHA512 2410df5b39d5ca14ea7181ef4f3b501ad8879e10895ed540f079f213dcc528b50e57cc16fce6f50a67e8a7be00b03c5833cabfd5db4ba210cafce6d95da389c6
HEAD_REF master
)
@@ -36,6 +36,19 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
freetype IMGUI_FREETYPE
)
+if ("libigl-imgui" IN_LIST FEATURES)
+ vcpkg_download_distfile(
+ IMGUI_FONTS_DROID_SANS_H
+ URLS
+ https://raw.githubusercontent.com/libigl/libigl-imgui/c3efb9b62780f55f9bba34561f79a3087e057fc0/imgui_fonts_droid_sans.h
+ FILENAME "imgui_fonts_droid_sans.h"
+ SHA512
+ abe9250c9a5989e0a3f2285bbcc83696ff8e38c1f5657c358e6fe616ff792d3c6e5ff2fa23c2eeae7d7b307392e0dc798a95d14f6d10f8e9bfbd7768d36d8b31
+ )
+
+ file(INSTALL ${IMGUI_FONTS_DROID_SANS_H} DESTINATION ${CURRENT_PACKAGES_DIR}/include)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -50,4 +63,4 @@ vcpkg_install_cmake()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets()
-file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/irrlicht/fix-sysctl.patch b/ports/irrlicht/fix-sysctl.patch
new file mode 100644
index 000000000..98c70273e
--- /dev/null
+++ b/ports/irrlicht/fix-sysctl.patch
@@ -0,0 +1,12 @@
+--- a/source/Irrlicht/COSOperator.cpp
++++ b/source/Irrlicht/COSOperator.cpp
+@@ -11,8 +11,8 @@
+ #else
+ #include <string.h>
+ #include <unistd.h>
+-#ifndef _IRR_SOLARIS_PLATFORM_
+ #include <sys/types.h>
++#ifdef _IRR_OSX_PLATFORM_
+ #include <sys/sysctl.h>
+ #endif
+ #endif
diff --git a/ports/irrlicht/portfile.cmake b/ports/irrlicht/portfile.cmake
index cad4ca5a0..754119f3e 100644
--- a/ports/irrlicht/portfile.cmake
+++ b/ports/irrlicht/portfile.cmake
@@ -6,7 +6,7 @@ vcpkg_from_sourceforge(
REF 1.8/1.8.4
FILENAME "irrlicht-1.8.4.zip"
SHA512 de69ddd2c6bc80a1b27b9a620e3697b1baa552f24c7d624076d471f3aecd9b15f71dce3b640811e6ece20f49b57688d428e3503936a7926b3e3b0cc696af98d1
- PATCHES fix-encoding.patch
+ PATCHES fix-encoding.patch fix-sysctl.patch
)
configure_file(${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt ${SOURCE_PATH}/CMakeLists.txt COPYONLY)
@@ -45,4 +45,4 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/irrlicht)
endif()
-file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/itk/CONTROL b/ports/itk/CONTROL
index e0dabeeb1..94135373e 100644
--- a/ports/itk/CONTROL
+++ b/ports/itk/CONTROL
@@ -1,6 +1,6 @@
Source: itk
Version: 5.1.0
-Port-Version: 1
+Port-Version: 2
Description: Insight Segmentation and Registration Toolkit (ITK) is used for image processing and analysis.
Homepage: https://github.com/InsightSoftwareConsortium/ITK
Build-Depends: double-conversion, libjpeg-turbo, zlib, libpng, tiff, expat, eigen3, hdf5[core,cpp], openjpeg[core], fftw3[core], gtest, gdcm, icu, minc
diff --git a/ports/itk/expat.patch b/ports/itk/expat.patch
deleted file mode 100644
index 44ef3a381..000000000
--- a/ports/itk/expat.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/Modules/IO/GDCM/itk-module.cmake b/Modules/IO/GDCM/itk-module.cmake
-index 2703612..51f0214 100644
---- a/Modules/IO/GDCM/itk-module.cmake
-+++ b/Modules/IO/GDCM/itk-module.cmake
-@@ -1,7 +1,7 @@
- set(DOCUMENTATION "This module contains ITK ImageIO classes for the <a
- href=\"http://sourceforge.net/projects/gdcm/\">Grassroots DICOM (GDCM)</a> based
- readers and writers of the medical imaging DICOM standard.")
--
-+find_package(expat CONFIG REQUIRED)
- itk_module(ITKIOGDCM
- ENABLE_SHARED
- DEPENDS
-@@ -9,6 +9,7 @@ itk_module(ITKIOGDCM
- ITKIOImageBase
- PRIVATE_DEPENDS
- ITKGDCM
-+ ITKExpat
- TEST_DEPENDS
- ITKTestKernel
- ITKGDCM
-diff --git a/Modules/ThirdParty/Expat/CMakeLists.txt b/Modules/ThirdParty/Expat/CMakeLists.txt
-index f69709d..9b49323 100644
---- a/Modules/ThirdParty/Expat/CMakeLists.txt
-+++ b/Modules/ThirdParty/Expat/CMakeLists.txt
-@@ -5,10 +5,12 @@ option(ITK_USE_SYSTEM_EXPAT "Use system-installed expat" ${ITK_USE_SYSTEM_LIBRAR
- mark_as_advanced(ITK_USE_SYSTEM_EXPAT)
-
- if(ITK_USE_SYSTEM_EXPAT)
-- find_package(EXPAT REQUIRED)
-- set(ITKExpat_INCLUDE_DIRS ${ITKExpat_BINARY_DIR}/src )
-- set(ITKExpat_SYSTEM_INCLUDE_DIRS "${EXPAT_INCLUDE_DIR}")
-- set(ITKExpat_LIBRARIES "${EXPAT_LIBRARY}")
-+ find_package(expat CONFIG REQUIRED)
-+ if(WIN32 AND NOT MINGW)
-+ set(ITKExpat_LIBRARIES expat::libexpat)
-+ else()
-+ set(ITKExpat_LIBRARIES expat::expat)
-+ endif()
- set(ITKExpat_NO_SRC 1)
- else()
- set(ITKExpat_INCLUDE_DIRS
-diff --git a/Modules/ThirdParty/GIFTI/src/gifticlib/CMakeLists.txt b/Modules/ThirdParty/GIFTI/src/gifticlib/CMakeLists.txt
-index 3f83225..c7ddbbe 100644
---- a/Modules/ThirdParty/GIFTI/src/gifticlib/CMakeLists.txt
-+++ b/Modules/ThirdParty/GIFTI/src/gifticlib/CMakeLists.txt
-@@ -11,6 +11,7 @@ set(GIFTI_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/include/gifti")
-
- if("${ITK_VERSION_MAJOR}" GREATER 0.0)
- # ITK provides expat and zlib.
-+ find_package(expat CONFIG REQUIRED)
- include_directories(${ITKNIFTI_INCLUDE_DIRS})
- set(PACKAGE_PREFIX "ITK")
- set(EXPAT_LIBRARIES ${ITKExpat_LIBRARIES})
diff --git a/ports/itk/portfile.cmake b/ports/itk/portfile.cmake
index 622a25189..b16ba194a 100644
--- a/ports/itk/portfile.cmake
+++ b/ports/itk/portfile.cmake
@@ -16,7 +16,6 @@ vcpkg_from_github(
python_gpu_wrapping.patch
opencl.patch
cufftw.patch
- expat.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
diff --git a/ports/josuttis-jthread/CONTROL b/ports/josuttis-jthread/CONTROL
index 760fb6eb7..8a0fc3c58 100644
--- a/ports/josuttis-jthread/CONTROL
+++ b/ports/josuttis-jthread/CONTROL
@@ -1,4 +1,5 @@
Source: josuttis-jthread
Version: 2020-07-21
+Port-Version: 1
Homepage: https://github.com/josuttis/jthread
Description: C++ class for a joining and cooperative interruptible thread (std::jthread) with stop_token helper
diff --git a/ports/josuttis-jthread/portfile.cmake b/ports/josuttis-jthread/portfile.cmake
index e01c16585..9563442b1 100644
--- a/ports/josuttis-jthread/portfile.cmake
+++ b/ports/josuttis-jthread/portfile.cmake
@@ -10,6 +10,6 @@ vcpkg_from_github(
file(INSTALL ${SOURCE_PATH}/source/jthread.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(INSTALL ${SOURCE_PATH}/source/stop_token.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
-file(INSTALL ${SOURCE_PATH}/source/condition_variable_any2.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include})
+file(INSTALL ${SOURCE_PATH}/source/condition_variable_any2.hpp DESTINATION ${CURRENT_PACKAGES_DIR}/include)
file(INSTALL ${SOURCE_PATH}/README.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/lapack-reference/CONTROL b/ports/lapack-reference/CONTROL
index 493e7f50e..0ac1c8d0e 100644
--- a/ports/lapack-reference/CONTROL
+++ b/ports/lapack-reference/CONTROL
@@ -1,5 +1,6 @@
Source: lapack-reference
Version: 3.8.0
+Port-Version: 1
Description: LAPACK — Linear Algebra PACKage http://www.netlib.org/lapack/
Default-Features: blas-select
Build-Depends: vcpkg-gfortran (windows)
diff --git a/ports/lapack-reference/FindLAPACK.cmake b/ports/lapack-reference/FindLAPACK.cmake
index 1edaa0f83..b6df00319 100644
--- a/ports/lapack-reference/FindLAPACK.cmake
+++ b/ports/lapack-reference/FindLAPACK.cmake
@@ -482,7 +482,7 @@ if(BLAS_FOUND)
LAPACK
cheev
""
- "lapack;-lm;-lgfortran"
+ "lapack;m;gfortran"
""
""
""
diff --git a/ports/lapack-reference/portfile.cmake b/ports/lapack-reference/portfile.cmake
index 1e3f8d6b6..6a3ad6982 100644
--- a/ports/lapack-reference/portfile.cmake
+++ b/ports/lapack-reference/portfile.cmake
@@ -24,6 +24,9 @@ endif()
set(CBLAS OFF)
if("cblas" IN_LIST FEATURES)
set(CBLAS ON)
+ if("noblas" IN_LIST FEATURES)
+ message(FATAL_ERROR "Cannot built feature 'cblas' together with feature 'noblas'. cblas requires blas!")
+ endif()
endif()
set(USE_OPTIMIZED_BLAS OFF)
@@ -59,7 +62,7 @@ vcpkg_configure_cmake(
OPTIONS
"-DUSE_OPTIMIZED_BLAS=${USE_OPTIMIZED_BLAS}"
"-DCBLAS=${CBLAS}"
- "${FORTRAN_CMAKE}"
+ ${FORTRAN_CMAKE}
)
vcpkg_install_cmake()
@@ -91,6 +94,20 @@ if(NOT USE_OPTIMIZED_BLAS)
file(WRITE "${pcfile}" "${_contents}")
endif()
endif()
+if("cblas" IN_LIST FEATURES)
+ set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/cblas.pc")
+ if(EXISTS "${pcfile}")
+ file(READ "${pcfile}" _contents)
+ set(_contents "prefix=${CURRENT_INSTALLED_DIR}\n${_contents}")
+ file(WRITE "${pcfile}" "${_contents}")
+ endif()
+ set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/cblas.pc")
+ if(EXISTS "${pcfile}")
+ file(READ "${pcfile}" _contents)
+ set(_contents "prefix=${CURRENT_INSTALLED_DIR}/debug\n${_contents}")
+ file(WRITE "${pcfile}" "${_contents}")
+ endif()
+endif()
vcpkg_fixup_pkgconfig()
vcpkg_copy_pdbs()
diff --git a/ports/lapack/CONTROL b/ports/lapack/CONTROL
index c4e27f77d..b16436d7f 100644
--- a/ports/lapack/CONTROL
+++ b/ports/lapack/CONTROL
@@ -1,4 +1,4 @@
Source: lapack
-Version: 1
+Version: 2
Description: Metapackage for packages which provide LAPACK
-Build-Depends: clapack ((arm&windows)|uwp), lapack-reference(!uwp&!(arm&windows)) \ No newline at end of file
+Build-Depends: clapack ((arm&windows)|uwp), lapack-reference(!uwp&!(arm&windows))
diff --git a/ports/lapack/clapack/FindLAPACK.cmake b/ports/lapack/clapack/FindLAPACK.cmake
index 0b5924ff4..eff9bae70 100644
--- a/ports/lapack/clapack/FindLAPACK.cmake
+++ b/ports/lapack/clapack/FindLAPACK.cmake
@@ -1,468 +1,233 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindLAPACK
-----------
-
-Find LAPACK library
-
-This module finds an installed fortran library that implements the
-LAPACK linear-algebra interface (see http://www.netlib.org/lapack/).
-
-The approach follows that taken for the autoconf macro file,
-acx_lapack.m4 (distributed at
-http://ac-archive.sourceforge.net/ac-archive/acx_lapack.html).
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-The following variables may be set to influence this module's behavior:
-
-``BLA_STATIC``
- if ``ON`` use static linkage
-
-``BLA_VENDOR``
- If set, checks only the specified vendor, if not set checks all the
- possibilities. List of vendors valid in this module:
-
- * ``Intel10_32`` (intel mkl v10 32 bit)
- * ``Intel10_64lp`` (intel mkl v10+ 64 bit, threaded code, lp64 model)
- * ``Intel10_64lp_seq`` (intel mkl v10+ 64 bit, sequential code, lp64 model)
- * ``Intel10_64ilp`` (intel mkl v10+ 64 bit, threaded code, ilp64 model)
- * ``Intel10_64ilp_seq`` (intel mkl v10+ 64 bit, sequential code, ilp64 model)
- * ``Intel`` (obsolete versions of mkl 32 and 64 bit)
- * ``OpenBLAS``
- * ``FLAME``
- * ``ACML``
- * ``Apple``
- * ``NAS``
- * ``Generic``
-
-``BLA_F95``
- if ``ON`` tries to find BLAS95/LAPACK95
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``LAPACK_FOUND``
- library implementing the LAPACK interface is found
-``LAPACK_LINKER_FLAGS``
- uncached list of required linker flags (excluding -l and -L).
-``LAPACK_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use LAPACK
-``LAPACK95_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use LAPACK95
-``LAPACK95_FOUND``
- library implementing the LAPACK95 interface is found
-
-.. note::
-
- C or CXX must be enabled to use Intel MKL
-
- For example, to use Intel MKL libraries and/or Intel compiler:
-
- .. code-block:: cmake
-
- set(BLA_VENDOR Intel10_64lp)
- find_package(LAPACK)
-#]=======================================================================]
-
-set(_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-# Check the language being used
-if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
- if(LAPACK_FIND_REQUIRED)
- message(FATAL_ERROR "FindLAPACK requires Fortran, C, or C++ to be enabled.")
- else()
- message(STATUS "Looking for LAPACK... - NOT found (Unsupported languages)")
- return()
- endif()
-endif()
-
-if (CMAKE_Fortran_COMPILER_LOADED)
-include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
-else ()
-include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
-endif ()
-include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake)
-include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
-
-cmake_push_check_state()
-set(CMAKE_REQUIRED_QUIET ${LAPACK_FIND_QUIETLY})
-
-set(LAPACK_FOUND FALSE)
-set(LAPACK95_FOUND FALSE)
-
-# TODO: move this stuff to separate module
-
-macro(Check_Lapack_Libraries LIBRARIES _prefix _name _flags _list _blas _threads)
-# This macro checks for the existence of the combination of fortran libraries
-# given by _list. If the combination is found, this macro checks (using the
-# Check_Fortran_Function_Exists macro) whether can link against that library
-# combination using the name of a routine given by _name using the linker
-# flags given by _flags. If the combination of libraries is found and passes
-# the link test, LIBRARIES is set to the list of complete library paths that
-# have been found. Otherwise, LIBRARIES is set to FALSE.
-
-# N.B. _prefix is the prefix applied to the names of all cached variables that
-# are generated internally and marked advanced by this macro.
-
-set(_libraries_work TRUE)
-set(${LIBRARIES})
-set(${LIBRARIES}_RELEASE)
-set(_combined_name)
-if (NOT _libdir)
- if (WIN32)
- set(_libdir ENV LIB)
- elseif (APPLE)
- set(_libdir ENV DYLD_LIBRARY_PATH)
- else ()
- set(_libdir ENV LD_LIBRARY_PATH)
- endif ()
-endif ()
-
-list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
-
-foreach(_library ${_list})
- set(_combined_name ${_combined_name}_${_library})
-
- if(_libraries_work)
- if (BLA_STATIC)
- if (WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- if (APPLE)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- else ()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- else ()
- if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- # for ubuntu's libblas3gf and liblapack3gf packages
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
- endif ()
- endif ()
- find_library(${_prefix}_${_library}_LIBRARY_RELEASE
- NAMES ${_library}
- PATHS ${_libdir}
- )
- mark_as_advanced(${_prefix}_${_library}_LIBRARY_RELEASE)
- find_library(${_prefix}_${_library}_LIBRARY_DEBUG
- NAMES ${_library}d
- PATHS ${_libdir}
- )
- mark_as_advanced(${_prefix}_${_library}_LIBRARY_DEBUG)
- select_library_configurations(${_prefix}_${_library})
- if(NOT ${_prefix}_${_library}_LIBRARY_RELEASE MATCHES "NOTFOUND")
- set(${LIBRARIES}_RELEASE ${${LIBRARIES}_RELEASE} ${${_prefix}_${_library}_LIBRARY_RELEASE})
- endif()
- set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
- set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
- endif()
-endforeach()
-
-if(_libraries_work)
- # Test this combination of libraries.
- if(NOT "${_blas}" STREQUAL "")
- string(GENEX_STRIP "${_blas}" _test_blas)
- endif()
- if(UNIX AND BLA_STATIC)
- set(CMAKE_REQUIRED_LIBRARIES ${_flags} "-Wl,--start-group" ${${LIBRARIES}_RELEASE} ${_test_blas} "-Wl,--end-group" ${_threads})
- else()
- set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}_RELEASE} ${_test_blas} ${_threads})
- endif()
- #message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
- #message("DEBUG: _test_blas = ${_test_blas} former ${_blas}")
- if (NOT CMAKE_Fortran_COMPILER_LOADED)
- check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
- else ()
- check_fortran_function_exists(${_name} ${_prefix}${_combined_name}_WORKS)
- endif ()
- set(CMAKE_REQUIRED_LIBRARIES)
- set(_test_blas)
- set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
-# message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
-endif()
-
- if(_libraries_work)
- set(${LIBRARIES} ${${LIBRARIES}} "${_blas}" ${_threads})
- else()
- set(${LIBRARIES} FALSE)
- endif()
-
-endmacro()
-
-
-set(LAPACK_LINKER_FLAGS)
-set(LAPACK_LIBRARIES)
-set(LAPACK95_LIBRARIES)
-
-
-if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
- find_package(BLAS)
-else()
- find_package(BLAS REQUIRED)
-endif()
-
-
-if(BLAS_FOUND)
- set(LAPACK_LINKER_FLAGS ${BLAS_LINKER_FLAGS})
- if (NOT $ENV{BLA_VENDOR} STREQUAL "")
- set(BLA_VENDOR $ENV{BLA_VENDOR})
- else ()
- if(NOT BLA_VENDOR)
- set(BLA_VENDOR "All")
- endif()
- endif ()
-
-#intel lapack
-if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
- if (NOT WIN32)
- set(LAPACK_mkl_LM "-lm")
- set(LAPACK_mkl_LDL "-ldl")
- endif ()
- if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
- if(LAPACK_FIND_QUIETLY OR NOT LAPACK_FIND_REQUIRED)
- find_PACKAGE(Threads)
- else()
- find_package(Threads REQUIRED)
- endif()
-
- if (BLA_VENDOR MATCHES "_64ilp")
- set(LAPACK_mkl_ILP_MODE "ilp64")
- else ()
- set(LAPACK_mkl_ILP_MODE "lp64")
- endif ()
-
- set(LAPACK_SEARCH_LIBS "")
-
- if (BLA_F95)
- set(LAPACK_mkl_SEARCH_SYMBOL "cheev_f95")
- set(_LIBRARIES LAPACK95_LIBRARIES)
- set(_BLAS_LIBRARIES ${BLAS95_LIBRARIES})
-
- # old
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_lapack95")
- # new >= 10.3
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_intel_c")
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_lapack95_${LAPACK_mkl_ILP_MODE}")
- else()
- set(LAPACK_mkl_SEARCH_SYMBOL "cheev")
- set(_LIBRARIES LAPACK_LIBRARIES)
- set(_BLAS_LIBRARIES ${BLAS_LIBRARIES})
-
- # old
- list(APPEND LAPACK_SEARCH_LIBS
- "mkl_lapack")
- endif()
-
- # First try empty lapack libs
- if (NOT ${_LIBRARIES})
- check_lapack_libraries(
- ${_LIBRARIES}
- LAPACK
- ${LAPACK_mkl_SEARCH_SYMBOL}
- ""
- ""
- "${_BLAS_LIBRARIES}"
- ""
- )
- endif ()
- # Then try the search libs
- foreach (IT ${LAPACK_SEARCH_LIBS})
- if (NOT ${_LIBRARIES})
- check_lapack_libraries(
- ${_LIBRARIES}
- LAPACK
- ${LAPACK_mkl_SEARCH_SYMBOL}
- ""
- "${IT}"
- "${_BLAS_LIBRARIES}"
- "${CMAKE_THREAD_LIBS_INIT};${LAPACK_mkl_LM};${LAPACK_mkl_LDL}"
- )
- endif ()
- endforeach ()
-
- unset(LAPACK_mkl_ILP_MODE)
- unset(LAPACK_mkl_SEARCH_SYMBOL)
- unset(LAPACK_mkl_LM)
- unset(LAPACK_mkl_LDL)
- endif ()
-endif()
-
-if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "goto2"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "openblas"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "flame"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-
-#acml lapack
- if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
- if (BLAS_LIBRARIES MATCHES ".+acml.+")
- set (LAPACK_LIBRARIES ${BLAS_LIBRARIES})
- endif ()
- endif ()
-
-# Apple LAPACK library?
-if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
- if(NOT LAPACK_LIBRARIES)
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "Accelerate"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif()
-endif ()
-if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
- if ( NOT LAPACK_LIBRARIES )
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "vecLib"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif ()
-endif ()
-# Generic LAPACK library?
-if (BLA_VENDOR STREQUAL "Generic" OR
- BLA_VENDOR STREQUAL "ATLAS" OR
- BLA_VENDOR STREQUAL "All")
- if ( NOT LAPACK_LIBRARIES )
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "lapack"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif ()
- if ( NOT LAPACK_LIBRARIES )
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "lapack;libf2c"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif ()
- if ( NOT LAPACK_LIBRARIES )
- check_lapack_libraries(
- LAPACK_LIBRARIES
- LAPACK
- cheev
- ""
- "lapack;f2c"
- "${BLAS_LIBRARIES}"
- ""
- )
- endif ()
-endif ()
-
-else()
- message(STATUS "LAPACK requires BLAS")
-endif()
-
-if(BLA_F95)
- if(LAPACK95_LIBRARIES)
- set(LAPACK95_FOUND TRUE)
- else()
- set(LAPACK95_FOUND FALSE)
- endif()
- if(NOT LAPACK_FIND_QUIETLY)
- if(LAPACK95_FOUND)
- message(STATUS "A library with LAPACK95 API found.")
- else()
- if(LAPACK_FIND_REQUIRED)
- message(FATAL_ERROR
- "A required library with LAPACK95 API not found. Please specify library location."
- )
- else()
- message(STATUS
- "A library with LAPACK95 API not found. Please specify library location."
- )
- endif()
- endif()
- endif()
- set(LAPACK_FOUND "${LAPACK95_FOUND}")
- set(LAPACK_LIBRARIES "${LAPACK95_LIBRARIES}")
-else()
- if(LAPACK_LIBRARIES)
- set(LAPACK_FOUND TRUE)
- else()
- set(LAPACK_FOUND FALSE)
- endif()
-
- if(NOT LAPACK_FIND_QUIETLY)
- if(LAPACK_FOUND)
- message(STATUS "A library with LAPACK API found.")
- else()
- if(LAPACK_FIND_REQUIRED)
- message(FATAL_ERROR
- "A required library with LAPACK API not found. Please specify library location."
- )
- else()
- message(STATUS
- "A library with LAPACK API not found. Please specify library location."
- )
- endif()
- endif()
- endif()
-endif()
-
-cmake_pop_check_state()
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_lapack_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
+#.rst:
+# clapack config for vcpkg
+# ------------
+#
+# Find the clapack includes and library.
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# This script defines the following variables:
+#
+# ``CLAPACK_FOUND``
+# True if clapack library found
+#
+# ``CLAPACK_VERSION``
+# Containing the clapack version tag (manually defined)
+#
+# ``CLAPACK_INCLUDE_DIR``
+# Location of clapack headers
+#
+# ``CLAPACK_LIBRARY``
+# List of libraries to link with when using clapack
+#
+# Result Targets
+# ^^^^^^^^^^^^^^
+#
+# This script defines the following targets:
+#
+# ``clapack::clapack``
+# Target to use clapack
+#
+# Compatibility Variables
+# ^^^^^^^^^^^^^^^^^^^^^^^
+#
+# This script defines the following variables for compatibility reasons:
+#
+# ``F2C_FOUND``
+# True if f2c (fortran-to-c wrap layer) library found
+#
+# ``F2C_INCLUDE_DIR``
+# Location of clapack headers
+#
+# ``F2C_LIBRARY``
+# Library containing the fortran-to-c wrap layer, necessary for clapack and automatically included when used
+#
+# ``LAPACK_FOUND``
+# True if clapack library found
+#
+# ``LAPACK_VERSION``
+# Containing the clapack version tag (manually defined)
+#
+# ``LAPACK_INCLUDE_DIR``
+# Location of clapack headers
+#
+# ``LAPACK_LIBRARY``
+# List of libraries to link with when using clapack
+#
+# Compatibility Targets
+# ^^^^^^^^^^^^^^
+#
+# This script defines the following targets for compatibility reasons:
+#
+# ``lapack``
+# Target to use lapack
+
+include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
+include(${CMAKE_ROOT}/Modules/CheckSymbolExists.cmake)
+include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
+include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
+
+set(CLAPACK_VERSION "3.2.1")
+
+set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+find_dependency(Threads)
+
+if(UNIX)
+ find_library(ADDITIONAL_LAPACK_LIBRARY m)
+ set(PTHREAD_LINK_NAME "-pthread")
+endif()
+
+if(NOT F2C_LIBRARY)
+ find_library(F2C_LIBRARY_RELEASE NAMES f2c libf2c)
+ find_library(F2C_LIBRARY_DEBUG NAMES f2cd libf2cd)
+ select_library_configurations(F2C)
+
+ #keep a list of "pure" f2c libs, without dependencies
+ set(oF2C_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
+ set(oF2C_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
+ set(oF2C_LIBRARY ${F2C_LIBRARY})
+
+ list(APPEND F2C_LIBRARY ${ADDITIONAL_LAPACK_LIBRARY})
+endif()
+
+if(NOT LAPACK_LIBRARY)
+ find_library(LAPACK_LIBRARY_RELEASE NAMES lapack)
+ find_library(LAPACK_LIBRARY_DEBUG NAMES lapackd)
+
+ #keep a list of "pure" lapack libs, without dependencies
+ set(oLAPACK_LIBRARY_RELEASE ${LAPACK_LIBRARY_RELEASE})
+ set(oLAPACK_LIBRARY_DEBUG ${LAPACK_LIBRARY_DEBUG})
+ select_library_configurations(oLAPACK)
+
+ list(APPEND LAPACK_LIBRARY_RELEASE ${F2C_LIBRARY_RELEASE})
+ list(APPEND LAPACK_LIBRARY_DEBUG ${F2C_LIBRARY_DEBUG})
+
+ find_dependency(OpenBLAS)
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_RELEASE)
+ if(NOT _loc)
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_RELEASE)
+ endif()
+ set(LAPACK_BLAS_LIBRARY_RELEASE ${_loc})
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY IMPORTED_IMPLIB_DEBUG)
+ if(NOT _loc)
+ get_property(_loc TARGET OpenBLAS::OpenBLAS PROPERTY LOCATION_DEBUG)
+ endif()
+ set(LAPACK_BLAS_LIBRARY_DEBUG ${_loc})
+ select_library_configurations(LAPACK_BLAS)
+ list(APPEND LAPACK_LIBRARY_RELEASE ${LAPACK_BLAS_LIBRARY_RELEASE})
+ list(APPEND LAPACK_LIBRARY_DEBUG ${LAPACK_BLAS_LIBRARY_DEBUG})
+
+ select_library_configurations(LAPACK)
+ if(UNIX)
+ list(APPEND LAPACK_LIBRARY ${PTHREAD_LINK_NAME})
+ endif()
+endif()
+
+if(NOT F2C_INCLUDE_DIR)
+ find_path(F2C_INCLUDE_DIR NAMES f2c.h)
+endif()
+
+if(NOT LAPACK_INCLUDE_DIR)
+ find_path(LAPACK_INCLUDE_DIR NAMES clapack.h)
+endif()
+
+list(APPEND LAPACK_INCLUDE_DIR ${F2C_INCLUDE_DIR})
+set(LAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
+set(LAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
+set(CLAPACK_INCLUDE_DIR "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
+set(CLAPACK_INCLUDE_DIRS "${LAPACK_INCLUDE_DIR}" CACHE PATH "" FORCE)
+set(F2C_INCLUDE_DIRS "${F2C_INCLUDE_DIR}" CACHE PATH "" FORCE)
+
+set(LAPACK_DLL_DIR ${LAPACK_INCLUDE_DIR})
+list(TRANSFORM LAPACK_DLL_DIR APPEND "/../bin")
+message(STATUS "LAPACK_DLL_DIR: ${LAPACK_DLL_DIR}")
+
+if(WIN32)
+ find_file(LAPACK_LIBRARY_RELEASE_DLL NAMES lapack.dll PATHS ${LAPACK_DLL_DIR})
+ find_file(LAPACK_LIBRARY_DEBUG_FOLDER NAMES lapackd.dll PATHS ${LAPACK_DLL_DIR})
+ find_file(F2C_LIBRARY_RELEASE_DLL NAMES f2c.dll libf2c.dll PATHS ${LAPACK_DLL_DIR})
+ find_file(F2C_LIBRARY_DEBUG_DLL NAMES f2cd.dll libf2cd.dll PATHS ${LAPACK_DLL_DIR})
+endif()
+
+set(LAPACK_BLAS_LIBRARY "${LAPACK_BLAS_LIBRARY}" CACHE STRING "" FORCE)
+set(F2C_LIBRARIES "${F2C_LIBRARY}" CACHE STRING "" FORCE)
+set(LAPACK_VERSION "${CLAPACK_VERSION}" CACHE STRING "" FORCE)
+set(LAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+set(CLAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+set(CLAPACK_LIBRARIES "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+
+set(LAPACK_LIBRARY "${LAPACK_LIBRARY}" CACHE STRING "" FORCE)
+set(F2C_LIBRARY "${F2C_LIBRARY}" CACHE STRING "" FORCE)
+set(LAPACK_LIBRARY_RELEASE "${LAPACK_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
+set(LAPACK_LIBRARY_DEBUG "${LAPACK_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
+set(F2C_LIBRARY_RELEASE "${F2C_LIBRARY_RELEASE}" CACHE STRING "" FORCE)
+set(F2C_LIBRARY_DEBUG "${F2C_LIBRARY_DEBUG}" CACHE STRING "" FORCE)
+
+find_package_handle_standard_args(LAPACK DEFAULT_MSG LAPACK_LIBRARY LAPACK_INCLUDE_DIR)
+mark_as_advanced(LAPACK_INCLUDE_DIR LAPACK_LIBRARY)
+
+#TARGETS
+if(CLAPACK_FOUND AND NOT TARGET clapack::clapack)
+ if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
+ add_library(clapack::clapack SHARED IMPORTED)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
+ IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_CONFIGURATIONS Release
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
+ set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
+ IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
+ endif()
+ else()
+ add_library(clapack::clapack UNKNOWN IMPORTED)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_CONFIGURATIONS Release
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
+ set_property(TARGET clapack::clapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(clapack::clapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
+ endif()
+ endif()
+endif()
+
+if(CLAPACK_FOUND AND NOT TARGET lapack)
+ if(EXISTS "${LAPACK_LIBRARY_RELEASE_DLL}")
+ add_library(lapack SHARED IMPORTED)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${LAPACK_LIBRARY_RELEASE_DLL}"
+ IMPORTED_IMPLIB_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_CONFIGURATIONS Release
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG_DLL}")
+ set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${LAPACK_LIBRARY_DEBUG_DLL}"
+ IMPORTED_IMPLIB_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
+ endif()
+ else()
+ add_library(lapack UNKNOWN IMPORTED)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_RELEASE "${oLAPACK_LIBRARY_RELEASE}"
+ INTERFACE_INCLUDE_DIRECTORIES "${LAPACK_INCLUDE_DIR}"
+ IMPORTED_CONFIGURATIONS Release
+ INTERFACE_LINK_LIBRARIES "$<$<NOT:$<CONFIG:DEBUG>>:${oF2C_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${oF2C_LIBRARY_DEBUG}>;$<$<NOT:$<CONFIG:DEBUG>>:${LAPACK_BLAS_LIBRARY_RELEASE}>;$<$<CONFIG:DEBUG>:${LAPACK_BLAS_LIBRARY_DEBUG}>;$<LINK_ONLY:${ADDITIONAL_LAPACK_LIBRARY}>;$<LINK_ONLY:${PTHREAD_LINK_NAME}>"
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+ if(EXISTS "${LAPACK_LIBRARY_DEBUG}")
+ set_property(TARGET lapack APPEND PROPERTY IMPORTED_CONFIGURATIONS Debug)
+ set_target_properties(lapack PROPERTIES
+ IMPORTED_LOCATION_DEBUG "${oLAPACK_LIBRARY_DEBUG}")
+ endif()
+ endif()
+endif()
diff --git a/ports/lapack/clapack/vcpkg-cmake-wrapper.cmake b/ports/lapack/clapack/vcpkg-cmake-wrapper.cmake
index 26a0a1624..8c9af9e86 100644
--- a/ports/lapack/clapack/vcpkg-cmake-wrapper.cmake
+++ b/ports/lapack/clapack/vcpkg-cmake-wrapper.cmake
@@ -1,2 +1,10 @@
-include(${CMAKE_CURRENT_LIST_DIR}/FindLAPACK.cmake)
+set(LAPACK_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+list(REMOVE_ITEM ARGS "NO_MODULE")
+list(REMOVE_ITEM ARGS "CONFIG")
+list(REMOVE_ITEM ARGS "MODULE")
+
+_find_package(${ARGS})
+
+set(CMAKE_MODULE_PATH ${LAPACK_PREV_MODULE_PATH}) \ No newline at end of file
diff --git a/ports/libfreenect2/CONTROL b/ports/libfreenect2/CONTROL
index b24480c83..3618d2a73 100644
--- a/ports/libfreenect2/CONTROL
+++ b/ports/libfreenect2/CONTROL
@@ -1,5 +1,6 @@
Source: libfreenect2
-Version: 0.2.0-4
+Version: 0.2.0
+Port-Version: 5
Build-Depends: libusb, libjpeg-turbo
Homepage: https://github.com/OpenKinect/libfreenect2
Description: Open source drivers for the Kinect for Windows v2 device
diff --git a/ports/libfreenect2/fix-dependency-libusb.patch b/ports/libfreenect2/fix-dependency-libusb.patch
new file mode 100644
index 000000000..a5de8f3be
--- /dev/null
+++ b/ports/libfreenect2/fix-dependency-libusb.patch
@@ -0,0 +1,31 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1e0d192..aedc576 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -90,7 +90,7 @@ SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
+
+ # dependencies
+ FIND_PACKAGE(PkgConfig) # try find PKGConfig as it will be used if found
+-FIND_PACKAGE(LibUSB REQUIRED)
++FIND_PACKAGE(libusb CONFIG REQUIRED)
+
+ # Add includes
+ INCLUDE_DIRECTORIES(
+@@ -98,7 +98,7 @@ INCLUDE_DIRECTORIES(
+ "${MY_DIR}/include/internal"
+ ${PROJECT_BINARY_DIR} # for generated headers
+ ${LIBFREENECT2_THREADING_INCLUDE_DIR}
+- ${LibUSB_INCLUDE_DIRS}
++ ${LIBUSB_INCLUDE_DIRS}
+ )
+
+ SET(RESOURCES_INC_FILE "${PROJECT_BINARY_DIR}/resources.inc.h")
+@@ -154,7 +154,7 @@ SET(SOURCES
+ )
+
+ SET(LIBRARIES
+- ${LibUSB_LIBRARIES}
++ ${LIBUSB_LIBRARIES}
+ ${LIBFREENECT2_THREADING_LIBRARIES}
+ )
+
diff --git a/ports/libfreenect2/portfile.cmake b/ports/libfreenect2/portfile.cmake
index ff1ef220b..340509771 100644
--- a/ports/libfreenect2/portfile.cmake
+++ b/ports/libfreenect2/portfile.cmake
@@ -1,11 +1,10 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO OpenKinect/libfreenect2
REF v0.2.0
SHA512 3525e3f21462cecd3b198f64545786ffddc2cafdfd8146e5a46f0300b83f29f1ad0739618a07ab195c276149d7e2e909f7662e2d379a2880593cac75942b0666
HEAD_REF master
+ PATCHES fix-dependency-libusb.patch
)
file(READ ${SOURCE_PATH}/cmake_modules/FindLibUSB.cmake FINDLIBUSB)
@@ -34,16 +33,10 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/freenect2)
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/freenect2 TARGET_PATH share/freenect2)
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# The cmake config is actually called freenect2Config.cmake instead of libfreenect2Config.cmake ...
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libfreenect2 ${CURRENT_PACKAGES_DIR}/share/freenect2)
-
-# license file needs to be in share/libfreenect2 otherwise vcpkg will complain
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/libfreenect2/)
-file(COPY ${SOURCE_PATH}/GPL2 DESTINATION ${CURRENT_PACKAGES_DIR}/share/libfreenect2/)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/libfreenect2/GPL2 ${CURRENT_PACKAGES_DIR}/share/libfreenect2/copyright)
+file(INSTALL ${SOURCE_PATH}/GPL2 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/libigl/CONTROL b/ports/libigl/CONTROL
index 496f73570..3b2304002 100644
--- a/ports/libigl/CONTROL
+++ b/ports/libigl/CONTROL
@@ -15,11 +15,11 @@ Build-Depends: opengl, glad
Feature: glfw
Description: Build with glfw
-Build-Depends: glfw3
+Build-Depends: libigl[opengl], glfw3
Feature: imgui
Description: Build with imgui
-Build-Depends: imgui[bindings]
+Build-Depends: libigl[glfw], imgui[glfw-binding, opengl3-glew-binding, libigl-imgui]
Feature: xml
Description: Build with libxml
diff --git a/ports/libigl/fix-dependency.patch b/ports/libigl/fix-dependency.patch
index e891e341e..fad85af0a 100644
--- a/ports/libigl/fix-dependency.patch
+++ b/ports/libigl/fix-dependency.patch
@@ -146,18 +146,15 @@ diff --git a/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp b/include/igl/opengl/gl
index 47de487..6c607de 100644
--- a/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp
+++ b/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp
-@@ -9,10 +9,10 @@
+@@ -9,9 +9,9 @@
#include "ImGuiMenu.h"
#include "ImGuiHelpers.h"
#include <igl/project.h>
-#include <imgui/imgui.h>
--#include <imgui_impl_glfw.h>
--#include <imgui_impl_opengl3.h>
--#include <imgui_fonts_droid_sans.h>
+#include <imgui.h>
-+#include <bindings/imgui_impl_glfw.h>
-+#include <bindings/imgui_impl_opengl3.h>
-+#include <bindings/imgui_fonts_droid_sans.h>
+ #include <imgui_impl_glfw.h>
+ #include <imgui_impl_opengl3.h>
+ #include <imgui_fonts_droid_sans.h>
#include <GLFW/glfw3.h>
#include <iostream>
////////////////////////////////////////////////////////////////////////////////
diff --git a/ports/libigl/fix-imgui-set-cond.patch b/ports/libigl/fix-imgui-set-cond.patch
new file mode 100644
index 000000000..964f6f3f4
--- /dev/null
+++ b/ports/libigl/fix-imgui-set-cond.patch
@@ -0,0 +1,26 @@
+diff --git a/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp b/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp
+index 47de4870..7e6f13a8 100644
+--- a/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp
++++ b/include/igl/opengl/glfw/imgui/ImGuiMenu.cpp
+@@ -167,8 +167,8 @@ IGL_INLINE void ImGuiMenu::draw_menu()
+ IGL_INLINE void ImGuiMenu::draw_viewer_window()
+ {
+ float menu_width = 180.f * menu_scaling();
+- ImGui::SetNextWindowPos(ImVec2(0.0f, 0.0f), ImGuiSetCond_FirstUseEver);
+- ImGui::SetNextWindowSize(ImVec2(0.0f, 0.0f), ImGuiSetCond_FirstUseEver);
++ ImGui::SetNextWindowPos(ImVec2(0.0f, 0.0f), ImGuiCond_FirstUseEver);
++ ImGui::SetNextWindowSize(ImVec2(0.0f, 0.0f), ImGuiCond_FirstUseEver);
+ ImGui::SetNextWindowSizeConstraints(ImVec2(menu_width, -1.0f), ImVec2(menu_width, -1.0f));
+ bool _viewer_menu_visible = true;
+ ImGui::Begin(
+@@ -310,8 +310,8 @@ IGL_INLINE void ImGuiMenu::draw_viewer_menu()
+ IGL_INLINE void ImGuiMenu::draw_labels_window()
+ {
+ // Text labels
+- ImGui::SetNextWindowPos(ImVec2(0,0), ImGuiSetCond_Always);
+- ImGui::SetNextWindowSize(ImGui::GetIO().DisplaySize, ImGuiSetCond_Always);
++ ImGui::SetNextWindowPos(ImVec2(0,0), ImGuiCond_Always);
++ ImGui::SetNextWindowSize(ImGui::GetIO().DisplaySize, ImGuiCond_Always);
+ bool visible = true;
+ ImGui::PushStyleColor(ImGuiCol_WindowBg, ImVec4(0,0,0,0));
+ ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0);
diff --git a/ports/libigl/portfile.cmake b/ports/libigl/portfile.cmake
index d3e342b5b..063f5a723 100644
--- a/ports/libigl/portfile.cmake
+++ b/ports/libigl/portfile.cmake
@@ -8,7 +8,9 @@ vcpkg_from_github(
REF 3cb4894eaf8ea4610467189ca292be349425d44b #2.2.0
SHA512 339f96e36b6a99ae8301ec2e234e18cecba7b7c42289ed68a26c20b279dce3135405f9b49e292c321fba962d56c083ae61831057bec9a19ad1495e2afa379b8b
HEAD_REF master
- PATCHES fix-dependency.patch
+ PATCHES
+ fix-dependency.patch
+ fix-imgui-set-cond.patch
)
set(LIBIGL_BUILD_STATIC OFF)
@@ -16,9 +18,9 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(LIBIGL_BUILD_STATIC ON)
endif()
-if ("imgui" IN_LIST FEATURES AND VCPKG_LIBRARY_LINKAGE STREQUAL static)
+if ("imgui" IN_LIST FEATURES AND NOT VCPKG_LIBRARY_LINKAGE STREQUAL static)
# Remove this after add port libigl-imgui
- message(FATAL_ERROR "Feature imgui does not support static build currentlly")
+ message(FATAL_ERROR "Feature imgui does not support non-static build currently")
endif()
if ("test" IN_LIST FEATURES AND NOT EXISTS ${SOURCE_PATH}/tests/data)
diff --git a/ports/libjpeg-turbo/CONTROL b/ports/libjpeg-turbo/CONTROL
index 42825d883..3ee860999 100644
--- a/ports/libjpeg-turbo/CONTROL
+++ b/ports/libjpeg-turbo/CONTROL
@@ -1,4 +1,4 @@
Source: libjpeg-turbo
-Version: 2.0.4
+Version: 2.0.5
Homepage: https://github.com/libjpeg-turbo/libjpeg-turbo
Description: libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.
diff --git a/ports/libjpeg-turbo/portfile.cmake b/ports/libjpeg-turbo/portfile.cmake
index 893c25adb..95fae01c2 100644
--- a/ports/libjpeg-turbo/portfile.cmake
+++ b/ports/libjpeg-turbo/portfile.cmake
@@ -1,10 +1,8 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO libjpeg-turbo/libjpeg-turbo
- REF 166e34213e4f4e2363ce058a7bcc69fd03e38b76 # 2.0.4
- SHA512 e4ac657cdb5df0b37e9429d21c2c49eed0c195408469597b49c06791fc5899a66f7f7dbb0b253f32eb28e63e5382fcf3afe68e5e30b04f76e145f6151d8f1112
+ REF ae87a958613b69628b92088b313ded0d4f59a716 # 2.0.5
+ SHA512 25e8857a3542cc74c48775959f11811529fe6a853990cb285f91a6218c1cde5dd1e58043208e81709fb7a71c376396b2de1f20b53b2c5b8595ca097fa02992fd
HEAD_REF master
PATCHES
add-options-for-exes-docs-headers.patch
@@ -66,7 +64,7 @@ endif()
file(COPY
${SOURCE_PATH}/LICENSE.md
- DESTINATION ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo
+ DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}
)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
@@ -85,4 +83,3 @@ file(RENAME ${CURRENT_PACKAGES_DIR}/share/libjpeg-turbo/LICENSE.md ${CURRENT_PAC
vcpkg_copy_pdbs()
-vcpkg_test_cmake(PACKAGE_NAME JPEG MODULE)
diff --git a/ports/libkml/CONTROL b/ports/libkml/CONTROL
index 06dbb7bde..33de1219b 100644
--- a/ports/libkml/CONTROL
+++ b/ports/libkml/CONTROL
@@ -1,6 +1,6 @@
Source: libkml
Version: 1.3.0
-Port-Version: 5
+Port-Version: 6
Homepage: https://github.com/libkml/libkml
Description: Reference implementation of OGC KML 2.2
Build-Depends: zlib, expat, minizip[bzip2], uriparser, boost-smart-ptr \ No newline at end of file
diff --git a/ports/libkml/fix-expat.patch b/ports/libkml/fix-expat.patch
deleted file mode 100644
index e4a09d187..000000000
--- a/ports/libkml/fix-expat.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9728ead..f9e8051 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -93,8 +93,13 @@ set(MINIZIP_DEPENDS "" CACHE INTERNAL "MINIZIP_DEPENDS")
-
- set(LIBKML_TARGETS)
-
--find_package(EXPAT)
--if(EXPAT_FOUND)
-+find_package(expat CONFIG REQUIRED)
-+if(WIN32 AND NOT MINGW)
-+ set(EXPAT_LIBRARY expat::libexpat)
-+else()
-+ set(EXPAT_LIBRARY expat::expat)
-+endif()
-+if(EXPAT_LIBRARY)
- include_directories(${EXPAT_INCLUDE_DIR})
- else()
- include(External_expat)
diff --git a/ports/libkml/portfile.cmake b/ports/libkml/portfile.cmake
index 4370aa40e..581a3b608 100644
--- a/ports/libkml/portfile.cmake
+++ b/ports/libkml/portfile.cmake
@@ -6,7 +6,6 @@ vcpkg_from_github(
HEAD_REF master
PATCHES
patch_empty_literal_on_vc.patch
- fix-expat.patch
)
file(REMOVE ${SOURCE_PATH}/cmake/External_boost.cmake)
diff --git a/ports/libmodplug/CONTROL b/ports/libmodplug/CONTROL
index 7fd84e775..c8339b104 100644
--- a/ports/libmodplug/CONTROL
+++ b/ports/libmodplug/CONTROL
@@ -1,4 +1,5 @@
Source: libmodplug
-Version: 0.8.9.0-5
+Version: 0.8.9.0
+Port-Version: 6
Homepage: https://github.com/Konstanty/libmodplug
Description: The ModPlug mod file playing library.
diff --git a/ports/libmodplug/portfile.cmake b/ports/libmodplug/portfile.cmake
index 74dcfa264..9cc8e5ac3 100644
--- a/ports/libmodplug/portfile.cmake
+++ b/ports/libmodplug/portfile.cmake
@@ -31,11 +31,16 @@ vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic AND VCPKG_TARGET_IS_WINDOWS)
+ if(VCPKG_TARGET_IS_MINGW)
+ set(BIN_NAME libmodplug.dll)
+ else()
+ set(BIN_NAME modplug.dll)
+ endif()
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/modplug.dll ${CURRENT_PACKAGES_DIR}/bin/modplug.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/${BIN_NAME} ${CURRENT_PACKAGES_DIR}/bin/${BIN_NAME})
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/modplug.dll ${CURRENT_PACKAGES_DIR}/debug/bin/modplug.dll)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/${BIN_NAME} ${CURRENT_PACKAGES_DIR}/debug/bin/${BIN_NAME})
vcpkg_copy_pdbs()
endif()
diff --git a/ports/libsndfile/0001-Improve-UWP-support.patch b/ports/libsndfile/0001-Improve-UWP-support.patch
new file mode 100644
index 000000000..9821aa30f
--- /dev/null
+++ b/ports/libsndfile/0001-Improve-UWP-support.patch
@@ -0,0 +1,37 @@
+diff --git a/src/file_io.c b/src/file_io.c
+index e5762ce8..90ef23d5 100644
+--- a/src/file_io.c
++++ b/src/file_io.c
+@@ -777,6 +777,21 @@ psf_open_handle (PSF_FILE * pfile)
+ return NULL ;
+ } ;
+
++#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
++ if (!pfile->use_wchar)
++ return NULL ;
++
++ CREATEFILE2_EXTENDED_PARAMETERS cfParams = { 0 } ;
++ cfParams.dwSize = sizeof (CREATEFILE2_EXTENDED_PARAMETERS) ;
++ cfParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL ;
++
++ handle = CreateFile2 (pfile->path.wc, dwDesiredAccess, dwShareMode, dwCreationDistribution, &cfParams) ;
++
++ if (handle == INVALID_HANDLE_VALUE)
++ return NULL ;
++
++ return handle ;
++#else
+ if (pfile->use_wchar)
+ handle = CreateFileW (
+ pfile->path.wc, /* pointer to name of the file */
+@@ -802,6 +817,7 @@ psf_open_handle (PSF_FILE * pfile)
+ return NULL ;
+
+ return handle ;
++#endif
+ } /* psf_open_handle */
+
+ /* USE_WINDOWS_API */ static void
+--
+2.27.0.windows.1
+
diff --git a/ports/libsndfile/CONTROL b/ports/libsndfile/CONTROL
deleted file mode 100644
index 913af809d..000000000
--- a/ports/libsndfile/CONTROL
+++ /dev/null
@@ -1,10 +0,0 @@
-Source: libsndfile
-Version: 1.0.29
-Port-Version: 10
-Description: Library to read, write and manipulate many soundfile types. Authored by Eric de Castro Lopo
-Homepage: https://github.com/erikd/libsndfile
-Default-Features: external-libs
-
-Feature: external-libs
-Description: Support Ogg Vorbis and FLAC audio files
-Build-Depends: libogg, libflac, libvorbis
diff --git a/ports/libsndfile/fix-install-path.patch b/ports/libsndfile/fix-install-path.patch
deleted file mode 100644
index 38c6ff734..000000000
--- a/ports/libsndfile/fix-install-path.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index cc35414..d629adf 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -641,12 +641,12 @@ if (ENABLE_PACKAGE_CONFIG)
- LibSndFileConfig.cmake
- INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
-
-- install(EXPORT LibSndFileTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
-+ install(EXPORT LibSndFileTargets DESTINATION share/libsndfile)
- install(FILES
- ${CMAKE_CURRENT_BINARY_DIR}/LibSndFileConfig.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/LibSndFileConfigVersion.cmake
- DESTINATION
-- ${CMAKE_INSTALL_PACKAGEDIR})
-+ share/libsndfile)
-
- elseif (NOT ENABLE_PACKAGE_CONFIG)
-
-@@ -698,9 +698,9 @@ set (html_DATA
- doc/embedded_files.html
- doc/octave.html
- doc/tutorial.html)
--install (FILES ${html_DATA} DESTINATION ${CMAKE_INSTALL_DOCDIR})
-+#install (FILES ${html_DATA} DESTINATION ${CMAKE_INSTALL_DATADIR}/libsndfile)
-
--install (FILES ${CMAKE_CURRENT_BINARY_DIR}/sndfile.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
-+#install (FILES ${CMAKE_CURRENT_BINARY_DIR}/sndfile.pc DESTINATION share/libsndfile/pkgconfig)
-
- #
- # Testing
diff --git a/ports/libsndfile/portfile.cmake b/ports/libsndfile/portfile.cmake
index 1e86fbffb..78eb4bc75 100644
--- a/ports/libsndfile/portfile.cmake
+++ b/ports/libsndfile/portfile.cmake
@@ -1,28 +1,22 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO erikd/libsndfile
- REF 6830c421899e32f8d413a903a21a9b6cf384d369
- SHA512 b13c5d7bc27218eff8a8c4ce89a964b4920b1d3946e4843e60be965d77ec205845750a82bf654a7c2c772bf3a24f6ff5706881b24ff12115f2525c8134b6d0b9
+ REF v1.0.29
+ SHA512 ff19e8cea629af9dea51c79f3446f7a63520525c8578c56b8b4b7a6f0ce07d2458ca488f0be9daeaf9ea3a1124b1fa7cac9a3b313b1ae1f43c76de852a10eed5
HEAD_REF master
- PATCHES
- uwp-createfile-getfilesize.patch
- uwp-createfile-getfilesize-addendum.patch
- fix-install-path.patch
+ PATCHES 0001-Improve-UWP-support.patch
)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" CRT_LIB_STATIC)
-string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
-
-option(BUILD_EXECUTABLES "Build sndfile tools and install to folder tools" OFF)
-if("external-libs" IN_LIST FEATURES)
- set(SNDFILE_WITHOUT_EXTERNAL_LIBS OFF)
-else()
- set(SNDFILE_WITHOUT_EXTERNAL_LIBS ON)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ vcpkg_find_acquire_program(PYTHON3)
endif()
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES external-libs ENABLE_EXTERNAL_LIBS
+)
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
@@ -31,49 +25,27 @@ vcpkg_configure_cmake(
-DBUILD_REGTEST=OFF
-DBUILD_TESTING=OFF
-DENABLE_BOW_DOCS=OFF
+ -DBUILD_PROGRAMS=OFF
-DENABLE_STATIC_RUNTIME=${CRT_LIB_STATIC}
- -DBUILD_STATIC_LIBS=${BUILD_STATIC}
- -DDISABLE_EXTERNAL_LIBS=${SNDFILE_WITHOUT_EXTERNAL_LIBS}
- OPTIONS_RELEASE
- -DBUILD_PROGRAMS=${BUILD_EXECUTABLES}
- OPTIONS_DEBUG
- -DBUILD_PROGRAMS=0
+ -DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON
+ -DPYTHON_EXECUTABLE=${PYTHON3}
+ ${FEATURE_OPTIONS}
)
-vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets()
+vcpkg_install_cmake()
+
+if(WIN32 AND (NOT MINGW) AND (NOT CYGWIN))
+ set(CONFIG_PATH cmake)
+else()
+ set(CONFIG_PATH lib/cmake/SndFile)
+endif()
-# Fix applied for 6830c421899e32f8d413a903a21a9b6cf384d369
-file(READ "${CURRENT_PACKAGES_DIR}/share/libsndfile/LibSndFileTargets.cmake" _contents)
-string(REPLACE "INTERFACE_INCLUDE_DIRECTORIES \"\${_IMPORT_PREFIX}/lib\"" "INTERFACE_INCLUDE_DIRECTORIES \"\${_IMPORT_PREFIX}/include\"" _contents "${_contents}")
-file(WRITE "${CURRENT_PACKAGES_DIR}/share/libsndfile/LibSndFileTargets.cmake" "${_contents}")
+vcpkg_fixup_cmake_targets(CONFIG_PATH ${CONFIG_PATH} TARGET_PATH share/SndFile)
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
-
-if(CMAKE_HOST_WIN32)
- set(EXECUTABLE_SUFFIX ".exe")
- set(SHARED_LIB_SUFFIX ".dll")
-else()
- set(EXECUTABLE_SUFFIX)
- set(SHARED_LIB_SUFFIX)
-endif()
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(REMOVE ${CURRENT_PACKAGES_DIR}/bin/libsndfile-1${SHARED_LIB_SUFFIX})
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/bin/libnsdfile-1${SHARED_LIB_SUFFIX})
-endif()
-
-if(BUILD_EXECUTABLES)
- file(GLOB TOOLS ${CURRENT_PACKAGES_DIR}/bin/*${EXECUTABLE_SUFFIX})
- file(COPY ${TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
- file(REMOVE ${TOOLS})
- vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
-endif(BUILD_EXECUTABLES)
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/${PORT}/COPYING ${CURRENT_PACKAGES_DIR}/share/${PORT}/copyright)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch b/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch
deleted file mode 100644
index 62e6b1131..000000000
--- a/ports/libsndfile/uwp-createfile-getfilesize-addendum.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/file_io.c b/src/file_io.c
-index 47351bc..54741c9 100644
---- a/src/file_io.c
-+++ b/src/file_io.c
-@@ -799,6 +799,8 @@ psf_open_handle (PSF_FILE * pfile)
-
- if (handle == INVALID_HANDLE_VALUE)
- return NULL;
-+
-+ return handle;
- #else
- if (pfile->use_wchar)
- handle = CreateFileW (
diff --git a/ports/libsndfile/uwp-createfile-getfilesize.patch b/ports/libsndfile/uwp-createfile-getfilesize.patch
deleted file mode 100644
index 0e60cde54..000000000
--- a/ports/libsndfile/uwp-createfile-getfilesize.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/src/file_io.c b/src/file_io.c
-index 7cf8f0c..47351bc 100644
---- a/src/file_io.c
-+++ b/src/file_io.c
-@@ -787,6 +787,19 @@ psf_open_handle (PSF_FILE * pfile)
- return NULL ;
- } ;
-
-+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
-+ if (!pfile->use_wchar)
-+ return NULL;
-+
-+ CREATEFILE2_EXTENDED_PARAMETERS cfParams = {0};
-+ cfParams.dwSize = sizeof(CREATEFILE2_EXTENDED_PARAMETERS);
-+ cfParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL;
-+
-+ handle = CreateFile2(pfile->path.wc, dwDesiredAccess, dwShareMode, dwCreationDistribution, &cfParams);
-+
-+ if (handle == INVALID_HANDLE_VALUE)
-+ return NULL;
-+#else
- if (pfile->use_wchar)
- handle = CreateFileW (
- pfile->path.wc, /* pointer to name of the file */
-@@ -812,6 +825,7 @@ psf_open_handle (PSF_FILE * pfile)
- return NULL ;
-
- return handle ;
-+#endif
- } /* psf_open_handle */
-
- /* USE_WINDOWS_API */ static void
-@@ -1104,7 +1118,16 @@ psf_is_pipe (SF_PRIVATE *psf)
-
- /* USE_WINDOWS_API */ sf_count_t
- psf_get_filelen_handle (HANDLE handle)
--{ sf_count_t filelen ;
-+{
-+#if defined (WINAPI_FAMILY_PARTITION) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
-+ LARGE_INTEGER size;
-+
-+ if (!GetFileSizeEx(handle, &size) && GetLastError() != NO_ERROR)
-+ return (sf_count_t) -1 ;
-+
-+ return size.QuadPart;
-+#else
-+ sf_count_t filelen ;
- DWORD dwFileSizeLow, dwFileSizeHigh, dwError = NO_ERROR ;
-
- dwFileSizeLow = GetFileSize (handle, &dwFileSizeHigh) ;
-@@ -1118,6 +1141,7 @@ psf_get_filelen_handle (HANDLE handle)
- filelen = dwFileSizeLow + ((__int64) dwFileSizeHigh << 32) ;
-
- return filelen ;
-+#endif
- } /* psf_get_filelen_handle */
-
- /* USE_WINDOWS_API */ void
diff --git a/ports/libsndfile/vcpkg.json b/ports/libsndfile/vcpkg.json
new file mode 100644
index 000000000..b9dcdb147
--- /dev/null
+++ b/ports/libsndfile/vcpkg.json
@@ -0,0 +1,22 @@
+{
+ "name": "libsndfile",
+ "version-string": "1.0.29",
+ "port-version": 11,
+ "description": "Library to read, write and manipulate many soundfile types. Authored by Eric de Castro Lopo",
+ "homepage": "https://github.com/erikd/libsndfile",
+ "license": "LGPL-2.1",
+ "default-features": [
+ "external-libs"
+ ],
+ "features": [
+ {
+ "name": "external-libs",
+ "description": "Default feature. Enables Ogg Vorbis, FLAC and Ogg Opus formats support.",
+ "dependencies": [
+ "libflac",
+ "libvorbis",
+ "opus"
+ ]
+ }
+ ]
+}
diff --git a/ports/libtorrent/CONTROL b/ports/libtorrent/CONTROL
index 48505d85a..c8405288b 100644
--- a/ports/libtorrent/CONTROL
+++ b/ports/libtorrent/CONTROL
@@ -1,5 +1,5 @@
Source: libtorrent
-Version: 1.2.8
+Version: 1.2.9
Homepage: https://github.com/arvidn/libtorrent
Description: An efficient feature complete C++ BitTorrent implementation
Build-Depends: openssl, boost-system, boost-date-time, boost-chrono, boost-random, boost-asio, boost-crc, boost-config, boost-iterator, boost-scope-exit, boost-multiprecision, boost-variant
diff --git a/ports/libtorrent/fix_python_cmake.patch b/ports/libtorrent/fix_python_cmake.patch
index 942b8e3b8..f114b8621 100644
--- a/ports/libtorrent/fix_python_cmake.patch
+++ b/ports/libtorrent/fix_python_cmake.patch
@@ -1,5 +1,5 @@
diff --git a/bindings/python/CMakeLists.txt b/bindings/python/CMakeLists.txt
-index 0b9b3ebe7..74e608901 100644
+index 53e09439f..de027f965 100644
--- a/bindings/python/CMakeLists.txt
+++ b/bindings/python/CMakeLists.txt
@@ -1,7 +1,6 @@
@@ -26,7 +26,7 @@ index 0b9b3ebe7..74e608901 100644
list(APPEND _tmp 3.5 3.6 3.7 3.8)
endif()
set(${_ret} ${_tmp} PARENT_SCOPE)
-@@ -31,31 +27,26 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" AND NOT skip-python-runtime-test)
+@@ -31,23 +27,22 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC" AND NOT skip-python-runtime-test)
_get_compatible_python_versions(Python_ADDITIONAL_VERSIONS)
endif()
@@ -48,15 +48,15 @@ index 0b9b3ebe7..74e608901 100644
if (NOT boost-python-module-name)
# use active python
-- if (PYTHON_VERSION_STRING VERSION_GREATER_EQUAL "3")
-- set(_boost-python-module-name "python${PYTHON_VERSION_MAJOR}")
-- else()
+ # if (PYTHON_VERSION_STRING VERSION_GREATER_EQUAL "3")
+ # set(_boost-python-module-name "python${PYTHON_VERSION_MAJOR}")
+ # else()
- set(_boost-python-module-name "python") # to overwrite possible value from a previous run
-- endif()
-+ set(_boost-python-module-name "python${Python3_VERSION_MAJOR}")
++ set(_boost-python-module-name "python${Python3_VERSION_MAJOR}") # to overwrite possible value from a previous run
+ # endif()
endif()
- set(boost-python-module-name ${_boost-python-module-name} CACHE STRING "Boost:python module name, e.g. 'pythom-3.6'")
+@@ -55,7 +50,7 @@ set(boost-python-module-name ${_boost-python-module-name} CACHE STRING "Boost:py
find_package(Boost REQUIRED COMPONENTS ${boost-python-module-name})
@@ -65,7 +65,7 @@ index 0b9b3ebe7..74e608901 100644
src/module.cpp
src/sha1_hash.cpp
src/converters.cpp
-@@ -80,12 +71,12 @@ python_add_module(python-libtorrent
+@@ -80,12 +75,12 @@ python_add_module(python-libtorrent
set_target_properties(python-libtorrent
PROPERTIES
@@ -80,7 +80,7 @@ index 0b9b3ebe7..74e608901 100644
)
string(TOUPPER "${boost-python-module-name}" boost_python_module_name_uppercase)
-@@ -96,7 +87,7 @@ target_link_libraries(python-libtorrent
+@@ -96,7 +91,7 @@ target_link_libraries(python-libtorrent
# Boost::python adds that but without a path to the library. Therefore we have to either
# provide the path (but, unfortunately, FindPythonLibs.cmake does not return the library dir),
# or give the full file name here (this FindPythonLibs.cmake provides to us).
@@ -89,7 +89,7 @@ index 0b9b3ebe7..74e608901 100644
)
# Bindings module uses deprecated libtorrent features, thus we disable these warnings
-@@ -108,7 +99,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
+@@ -108,7 +103,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
endif()
execute_process(COMMAND
@@ -98,7 +98,7 @@ index 0b9b3ebe7..74e608901 100644
print(';'.join(map(str, [
distutils.sysconfig.get_python_lib(plat_specific=True, prefix=''),
distutils.sysconfig.get_config_var('EXT_SUFFIX')
-@@ -119,13 +110,11 @@ list(GET _python_sysconfig_vars 0 PYTHON_SITE_PACKAGES)
+@@ -119,13 +114,11 @@ list(GET _python_sysconfig_vars 0 PYTHON_SITE_PACKAGES)
list(GET _python_sysconfig_vars 1 PYTHON_EXT_SUFFIX)
message(STATUS "Python site packages: ${PYTHON_SITE_PACKAGES}")
@@ -117,7 +117,7 @@ index 0b9b3ebe7..74e608901 100644
set(SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py.cmake.in")
set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
-@@ -135,8 +124,8 @@ set(DEPS python-libtorrent "${SETUP_PY}")
+@@ -135,8 +128,8 @@ set(DEPS python-libtorrent "${SETUP_PY}")
configure_file(${SETUP_PY_IN} ${SETUP_PY} @ONLY)
add_custom_command(OUTPUT ${OUTPUT}
diff --git a/ports/libtorrent/portfile.cmake b/ports/libtorrent/portfile.cmake
index e88ddf7cc..1f3b76e5a 100644
--- a/ports/libtorrent/portfile.cmake
+++ b/ports/libtorrent/portfile.cmake
@@ -39,8 +39,8 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO arvidn/libtorrent
- REF libtorrent-1.2.8
- SHA512 2a36412fb399f066de9768f4afd87ddbfc10fcd2a0b3a8be0a43bec6914497e71d9d4ffe4ff8ccc5544a048f799ccba6ce086ab6199f4dee66d1341f02d73f9a
+ REF libtorrent-1.2.9
+ SHA512 c547d96470f6a89f22adc0f5579ffb98b877a46f0a163698c49f1de57f23af60a7b0d3c1ca482e3ed8d3e35124d14a1d16a53e455f4d69f347fcb33c6ded75a8
HEAD_REF RC_1_2
PATCHES
add-datetime-to-boost-libs.patch
diff --git a/ports/libusb/CONTROL b/ports/libusb/CONTROL
index accbf3d0e..c2a965331 100644
--- a/ports/libusb/CONTROL
+++ b/ports/libusb/CONTROL
@@ -1,6 +1,6 @@
Source: libusb
Version: 1.0.23
-Port-Version: 2
+Port-Version: 3
Homepage: https://github.com/libusb/libusb
Description: a cross-platform library to access USB devices
Supports: !uwp
diff --git a/ports/libusb/portfile.cmake b/ports/libusb/portfile.cmake
index 74a592f41..c8d49f1c8 100644
--- a/ports/libusb/portfile.cmake
+++ b/ports/libusb/portfile.cmake
@@ -57,4 +57,6 @@ else()
vcpkg_install_make()
endif()
+configure_file(${CURRENT_PORT_DIR}/usage ${CURRENT_PACKAGES_DIR}/share/${PORT}/usage @ONLY)
+file(INSTALL ${CURRENT_PORT_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/libusb/usage b/ports/libusb/usage
new file mode 100644
index 000000000..de236d46a
--- /dev/null
+++ b/ports/libusb/usage
@@ -0,0 +1,5 @@
+The package @PORT@:@TARGET_TRIPLET@ provides CMake targets:
+
+ find_package(@PORT@ CONFIG REQUIRED)
+ target_include_directories(main PRIVATE ${LIBUSB_INCLUDE_DIRS})
+ target_link_libraries(main PRIVATE ${LIBUSB_LIBRARIES})
diff --git a/ports/libusb/vcpkg-cmake-wrapper.cmake b/ports/libusb/vcpkg-cmake-wrapper.cmake
new file mode 100644
index 000000000..8f0f35811
--- /dev/null
+++ b/ports/libusb/vcpkg-cmake-wrapper.cmake
@@ -0,0 +1,10 @@
+include(SelectLibraryConfigurations)
+
+find_path(LIBUSB_INCLUDE_DIR libusb.h PATH_SUFFIXES libusb-1.0)
+find_library(LIBUSB_LIBRARY_DEBUG NAMES libusb-1.0 usb-1.0 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH REQUIRED)
+find_library(LIBUSB_LIBRARY_RELEASE NAMES libusb-1.0 usb-1.0 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH REQUIRED)
+
+select_library_configurations(LIBUSB)
+
+set(LIBUSB_INCLUDE_DIRS ${LIBUSB_INCLUDE_DIR})
+set(LIBUSB_LIBRARIES ${LIBUSB_LIBRARY})
diff --git a/ports/llvm/0004-fix-dr-1734.patch b/ports/llvm/0004-fix-dr-1734.patch
new file mode 100644
index 000000000..adfbe5a13
--- /dev/null
+++ b/ports/llvm/0004-fix-dr-1734.patch
@@ -0,0 +1,14 @@
+diff --git a/llvm/include/llvm/Support/type_traits.h b/llvm/include/llvm/Support/type_traits.h
+index b7d48e8e1ad..53ba24efc00 100644
+--- a/llvm/include/llvm/Support/type_traits.h
++++ b/llvm/include/llvm/Support/type_traits.h
+@@ -177,7 +177,8 @@ class is_trivially_copyable {
+ (has_deleted_copy_assign || has_trivial_copy_assign) &&
+ (has_deleted_copy_constructor || has_trivial_copy_constructor);
+
+-#ifdef HAVE_STD_IS_TRIVIALLY_COPYABLE
++ // due to DR 1734, a type can be std::is_trivially_copyable but not llvm::is_trivially_copyable
++#if 0
+ static_assert(value == std::is_trivially_copyable<T>::value,
+ "inconsistent behavior between llvm:: and std:: implementation of is_trivially_copyable");
+ #endif
diff --git a/ports/llvm/CONTROL b/ports/llvm/CONTROL
index 3c2571379..f461f1cb5 100644
--- a/ports/llvm/CONTROL
+++ b/ports/llvm/CONTROL
@@ -1,5 +1,6 @@
Source: llvm
-Version: 10.0.0-4
+Version: 10.0.0
+Port-Version: 5
Homepage: https://llvm.org/
Description: The LLVM Compiler Infrastructure
Supports: !uwp
diff --git a/ports/llvm/portfile.cmake b/ports/llvm/portfile.cmake
index 9351047e6..305e6bf78 100644
--- a/ports/llvm/portfile.cmake
+++ b/ports/llvm/portfile.cmake
@@ -12,6 +12,7 @@ vcpkg_from_github(
0001-allow-to-use-commas.patch
0002-fix-install-paths.patch
0003-fix-vs2019-v16.6.patch
+ 0004-fix-dr-1734.patch
)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
diff --git a/ports/mlpack/CONTROL b/ports/mlpack/CONTROL
index 252c66997..7d3debb83 100644
--- a/ports/mlpack/CONTROL
+++ b/ports/mlpack/CONTROL
@@ -1,9 +1,9 @@
Source: mlpack
Version: 3.2.2
-Port-Version: 5
+Port-Version: 6
Homepage: https://github.com/mlpack/mlpack
Description: mlpack is a fast, flexible machine learning library, written in C++, that aims to provide fast, extensible implementations of cutting-edge machine learning algorithms.
-Build-Depends: openblas (!osx), lapack, boost, armadillo, ensmallen, stb
+Build-Depends: openblas, lapack, boost, armadillo, ensmallen, stb
Feature: tools
Description: Build command-line executables.
diff --git a/ports/mlpack/portfile.cmake b/ports/mlpack/portfile.cmake
index a7d73b2e3..11f6aa815 100644
--- a/ports/mlpack/portfile.cmake
+++ b/ports/mlpack/portfile.cmake
@@ -38,14 +38,56 @@ vcpkg_install_cmake()
vcpkg_copy_pdbs()
if("tools" IN_LIST FEATURES)
- file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools)
- file(GLOB MLPACK_TOOLS ${CURRENT_PACKAGES_DIR}/bin/*.exe)
- file(COPY ${MLPACK_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
- file(REMOVE ${MLPACK_TOOLS})
- file(GLOB MLPACK_TOOLS_DEBUG ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe)
- file(REMOVE ${MLPACK_TOOLS_DEBUG})
+ vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
+ mlpack_adaboost
+ mlpack_approx_kfn
+ mlpack_cf
+ mlpack_dbscan
+ mlpack_decision_stump
+ mlpack_decision_tree
+ mlpack_det
+ mlpack_emst
+ mlpack_fastmks
+ mlpack_gmm_generate
+ mlpack_gmm_probability
+ mlpack_gmm_train
+ mlpack_hmm_generate
+ mlpack_hmm_loglik
+ mlpack_hmm_train
+ mlpack_hmm_viterbi
+ mlpack_hoeffding_tree
+ mlpack_kde
+ mlpack_kernel_pca
+ mlpack_kfn
+ mlpack_kmeans
+ mlpack_knn
+ mlpack_krann
+ mlpack_lars
+ mlpack_linear_regression
+ mlpack_linear_svm
+ mlpack_lmnn
+ mlpack_local_coordinate_coding
+ mlpack_logistic_regression
+ mlpack_lsh
+ mlpack_mean_shift
+ mlpack_nbc
+ mlpack_nca
+ mlpack_nmf
+ mlpack_pca
+ mlpack_perceptron
+ mlpack_preprocess_binarize
+ mlpack_preprocess_describe
+ mlpack_preprocess_imputer
+ mlpack_preprocess_scale
+ mlpack_preprocess_split
+ mlpack_radical
+ mlpack_random_forest
+ mlpack_range_search
+ mlpack_softmax_regression
+ mlpack_sparse_coding
+ )
endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(INSTALL ${SOURCE_PATH}/COPYRIGHT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/COPYRIGHT.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/nanogui/CONTROL b/ports/nanogui/CONTROL
index 63b70db69..9c532e4f1 100644
--- a/ports/nanogui/CONTROL
+++ b/ports/nanogui/CONTROL
@@ -1,5 +1,7 @@
Source: nanogui
Version: 2019-09-23
+Port-Version: 1
Homepage: https://github.com/wjakob/nanogui
Description: NanoGUI is a minimalistic cross-platform widget library for OpenGL 3.x or higher.
-Build-Depends: glfw3, nanovg, eigen3 \ No newline at end of file
+Build-Depends: glfw3, nanovg, eigen3
+Supports: !uwp
diff --git a/ports/nanogui/portfile.cmake b/ports/nanogui/portfile.cmake
index bc868e549..f1cb824a7 100644
--- a/ports/nanogui/portfile.cmake
+++ b/ports/nanogui/portfile.cmake
@@ -1,21 +1,20 @@
-include(vcpkg_common_functions)
-
-if(VCPKG_TARGET_IS_UWP)
- message(FATAL_ERROR "nanogui doesn't support UWP.")
-endif()
+vcpkg_fail_port_install(ON_TARGET "uwp")
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO wjakob/nanogui
- REF e9ec8a1a9861cf578d9c6e85a6420080aa715c03 #Commits on Sep 23, 2019
+ REF e9ec8a1a9861cf578d9c6e85a6420080aa715c03 #Commits on Sep 23, 2019
SHA512 36c93bf977862ced2df4030211e2b83625e60a11fc9fdb6c1f2996bb234758331d3f41a7fbafd25a5bca0239ed9bac9c93446a4a7fac4c5e6d7943af2be3e14a
HEAD_REF master
PATCHES
- fix-cmakelists.patch
+ fix-cmakelists.patch
)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DNANOGUI_EIGEN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/eigen3
+ -DEIGEN_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/eigen3
)
vcpkg_install_cmake()
@@ -23,4 +22,4 @@ vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/openblas/CONTROL b/ports/openblas/CONTROL
index ea246834d..a5240e2b4 100644
--- a/ports/openblas/CONTROL
+++ b/ports/openblas/CONTROL
@@ -1,6 +1,6 @@
Source: openblas
Version: 0.3.9
-Port-Version: 2
+Port-Version: 3
Homepage: https://github.com/xianyi/OpenBLAS
Build-Depends: pthread (linux&osx)
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
diff --git a/ports/openblas/FindBLAS.cmake b/ports/openblas/FindBLAS.cmake
deleted file mode 100644
index 164e79f3b..000000000
--- a/ports/openblas/FindBLAS.cmake
+++ /dev/null
@@ -1,816 +0,0 @@
-# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
-# file Copyright.txt or https://cmake.org/licensing for details.
-
-#[=======================================================================[.rst:
-FindBLAS
---------
-
-Find Basic Linear Algebra Subprograms (BLAS) library
-
-This module finds an installed Fortran library that implements the
-BLAS linear-algebra interface (see http://www.netlib.org/blas/). The
-list of libraries searched for is taken from the ``autoconf`` macro file,
-``acx_blas.m4`` (distributed at
-http://ac-archive.sourceforge.net/ac-archive/acx_blas.html).
-
-Input Variables
-^^^^^^^^^^^^^^^
-
-The following variables may be set to influence this module's behavior:
-
-``BLA_STATIC``
- if ``ON`` use static linkage
-
-``BLA_VENDOR``
- If set, checks only the specified vendor, if not set checks all the
- possibilities. List of vendors valid in this module:
-
- * Goto
- * OpenBLAS
- * FLAME
- * ATLAS PhiPACK
- * CXML
- * DXML
- * SunPerf
- * SCSL
- * SGIMATH
- * IBMESSL
- * Intel10_32 (intel mkl v10 32 bit)
- * Intel10_64lp (intel mkl v10+ 64 bit, threaded code, lp64 model)
- * Intel10_64lp_seq (intel mkl v10+ 64 bit, sequential code, lp64 model)
- * Intel10_64ilp (intel mkl v10+ 64 bit, threaded code, ilp64 model)
- * Intel10_64ilp_seq (intel mkl v10+ 64 bit, sequential code, ilp64 model)
- * Intel (obsolete versions of mkl 32 and 64 bit)
- * ACML
- * ACML_MP
- * ACML_GPU
- * Apple
- * NAS
- * Generic
-
-``BLA_F95``
- if ``ON`` tries to find the BLAS95 interfaces
-
-``BLA_PREFER_PKGCONFIG``
- if set ``pkg-config`` will be used to search for a BLAS library first
- and if one is found that is preferred
-
-Result Variables
-^^^^^^^^^^^^^^^^
-
-This module defines the following variables:
-
-``BLAS_FOUND``
- library implementing the BLAS interface is found
-``BLAS_LINKER_FLAGS``
- uncached list of required linker flags (excluding ``-l`` and ``-L``).
-``BLAS_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use BLAS (may be empty if compiler implicitly links BLAS)
-``BLAS95_LIBRARIES``
- uncached list of libraries (using full path name) to link against
- to use BLAS95 interface
-``BLAS95_FOUND``
- library implementing the BLAS95 interface is found
-
-.. note::
-
- C or CXX must be enabled to use Intel Math Kernel Library (MKL)
-
- For example, to use Intel MKL libraries and/or Intel compiler:
-
- .. code-block:: cmake
-
- set(BLA_VENDOR Intel10_64lp)
- find_package(BLAS)
-
-Hints
-^^^^^
-
-Set ``MKLROOT`` environment variable to a directory that contains an MKL
-installation.
-
-#]=======================================================================]
-
-include(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
-include(${CMAKE_ROOT}/Modules/CheckFortranFunctionExists.cmake)
-include(${CMAKE_ROOT}/Modules/CMakePushCheckState.cmake)
-include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
-cmake_push_check_state()
-set(CMAKE_REQUIRED_QUIET ${BLAS_FIND_QUIETLY})
-
-set(_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-
-# Check the language being used
-if( NOT (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED OR CMAKE_Fortran_COMPILER_LOADED) )
- if(BLAS_FIND_REQUIRED)
- message(FATAL_ERROR "FindBLAS requires Fortran, C, or C++ to be enabled.")
- else()
- message(STATUS "Looking for BLAS... - NOT found (Unsupported languages)")
- return()
- endif()
-endif()
-
-if(BLA_PREFER_PKGCONFIG)
- find_package(PkgConfig)
- pkg_check_modules(PKGC_BLAS blas)
- if(PKGC_BLAS_FOUND)
- set(BLAS_FOUND ${PKGC_BLAS_FOUND})
- set(BLAS_LIBRARIES "${PKGC_BLAS_LINK_LIBRARIES}")
- return()
- endif()
-endif()
-
-macro(Check_Fortran_Libraries LIBRARIES _prefix _name _flags _list _thread)
- # This macro checks for the existence of the combination of fortran libraries
- # given by _list. If the combination is found, this macro checks (using the
- # Check_Fortran_Function_Exists macro) whether can link against that library
- # combination using the name of a routine given by _name using the linker
- # flags given by _flags. If the combination of libraries is found and passes
- # the link test, LIBRARIES is set to the list of complete library paths that
- # have been found. Otherwise, LIBRARIES is set to FALSE.
-
- # N.B. _prefix is the prefix applied to the names of all cached variables that
- # are generated internally and marked advanced by this macro.
-
- set(_libdir ${ARGN})
-
- set(_libraries_work TRUE)
- set(${LIBRARIES})
- set(_combined_name)
- if (NOT _libdir)
- if (WIN32)
- set(_libdir ENV LIB)
- elseif (APPLE)
- set(_libdir ENV DYLD_LIBRARY_PATH)
- else ()
- set(_libdir ENV LD_LIBRARY_PATH)
- endif ()
- endif ()
-
- list(APPEND _libdir "${CMAKE_C_IMPLICIT_LINK_DIRECTORIES}")
-
- foreach(_library ${_list})
- set(_combined_name ${_combined_name}_${_library})
- if(NOT "${_thread}" STREQUAL "")
- set(_combined_name ${_combined_name}_thread)
- endif()
- if(_libraries_work)
- if (BLA_STATIC)
- if (WIN32)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- if (APPLE)
- set(CMAKE_FIND_LIBRARY_SUFFIXES .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
- else ()
- set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
- endif ()
- else ()
- if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
- # for ubuntu's libblas3gf and liblapack3gf packages
- set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES} .so.3gf)
- endif ()
- endif ()
- find_library(${_prefix}_${_library}_LIBRARY
- NAMES ${_library}
- PATHS ${_libdir}
- )
- mark_as_advanced(${_prefix}_${_library}_LIBRARY)
- set(${LIBRARIES} ${${LIBRARIES}} ${${_prefix}_${_library}_LIBRARY})
- set(_libraries_work ${${_prefix}_${_library}_LIBRARY})
- endif()
- endforeach()
- if(_libraries_work)
- # Test this combination of libraries.
- set(CMAKE_REQUIRED_LIBRARIES ${_flags} ${${LIBRARIES}} ${_thread})
- # message("DEBUG: CMAKE_REQUIRED_LIBRARIES = ${CMAKE_REQUIRED_LIBRARIES}")
- if (CMAKE_Fortran_COMPILER_LOADED)
- check_fortran_function_exists("${_name}" ${_prefix}${_combined_name}_WORKS)
- else()
- check_function_exists("${_name}_" ${_prefix}${_combined_name}_WORKS)
- endif()
- set(CMAKE_REQUIRED_LIBRARIES)
- set(_libraries_work ${${_prefix}${_combined_name}_WORKS})
- endif()
- if(_libraries_work)
- if("${_list}" STREQUAL "")
- set(${LIBRARIES} "${LIBRARIES}-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
- else()
- set(${LIBRARIES} ${${LIBRARIES}} ${_thread}) # for static link
- endif()
- else()
- set(${LIBRARIES} FALSE)
- endif()
- #message("DEBUG: ${LIBRARIES} = ${${LIBRARIES}}")
-endmacro()
-
-set(BLAS_LINKER_FLAGS)
-set(BLAS_LIBRARIES)
-set(BLAS95_LIBRARIES)
-if (NOT $ENV{BLA_VENDOR} STREQUAL "")
- set(BLA_VENDOR $ENV{BLA_VENDOR})
-else ()
- if(NOT BLA_VENDOR)
- set(BLA_VENDOR "All")
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # Implicitly linked BLAS libraries
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- ""
- ""
- )
- endif()
-endif ()
-
-#BLAS in intel mkl 10+ library? (em64t 64bit)
-if (BLA_VENDOR MATCHES "Intel" OR BLA_VENDOR STREQUAL "All")
- if (NOT BLAS_LIBRARIES)
-
- # System-specific settings
- if (WIN32)
- if (BLA_STATIC)
- set(BLAS_mkl_DLL_SUFFIX "")
- else()
- set(BLAS_mkl_DLL_SUFFIX "_dll")
- endif()
- else()
- # Switch to GNU Fortran support layer if needed (but not on Apple, where MKL does not provide it)
- if(CMAKE_Fortran_COMPILER_LOADED AND CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND NOT APPLE)
- set(BLAS_mkl_INTFACE "gf")
- set(BLAS_mkl_THREADING "gnu")
- set(BLAS_mkl_OMP "gomp")
- else()
- set(BLAS_mkl_INTFACE "intel")
- set(BLAS_mkl_THREADING "intel")
- set(BLAS_mkl_OMP "iomp5")
- endif()
- set(BLAS_mkl_LM "-lm")
- set(BLAS_mkl_LDL "-ldl")
- endif()
-
- if (BLA_VENDOR MATCHES "_64ilp")
- set(BLAS_mkl_ILP_MODE "ilp64")
- else ()
- set(BLAS_mkl_ILP_MODE "lp64")
- endif ()
-
- if (CMAKE_C_COMPILER_LOADED OR CMAKE_CXX_COMPILER_LOADED)
- if(BLAS_FIND_QUIETLY OR NOT BLAS_FIND_REQUIRED)
- find_package(Threads)
- else()
- find_package(Threads REQUIRED)
- endif()
-
- set(BLAS_SEARCH_LIBS "")
-
- if(BLA_F95)
- set(BLAS_mkl_SEARCH_SYMBOL sgemm_f95)
- set(_LIBRARIES BLAS95_LIBRARIES)
- if (WIN32)
- # Find the main file (32-bit or 64-bit)
- set(BLAS_SEARCH_LIBS_WIN_MAIN "")
- if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
- "mkl_blas95${BLAS_mkl_DLL_SUFFIX} mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
- endif()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
- "mkl_blas95_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX} mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
- endif ()
-
- # Add threading/sequential libs
- set(BLAS_SEARCH_LIBS_WIN_THREAD "")
- if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
- endif()
- if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- endif()
-
- # Cartesian product of the above
- foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
- foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
- list(APPEND BLAS_SEARCH_LIBS
- "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
- endforeach()
- endforeach()
- else ()
- if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95 mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95 mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_blas95_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
- endif ()
- endif ()
- else ()
- set(BLAS_mkl_SEARCH_SYMBOL sgemm)
- set(_LIBRARIES BLAS_LIBRARIES)
- if (WIN32)
- # Find the main file (32-bit or 64-bit)
- set(BLAS_SEARCH_LIBS_WIN_MAIN "")
- if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
- "mkl_intel_c${BLAS_mkl_DLL_SUFFIX}")
- endif()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_MAIN
- "mkl_intel_${BLAS_mkl_ILP_MODE}${BLAS_mkl_DLL_SUFFIX}")
- endif ()
-
- # Add threading/sequential libs
- set(BLAS_SEARCH_LIBS_WIN_THREAD "")
- if (NOT BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libguide40 mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "libiomp5md mkl_intel_thread${BLAS_mkl_DLL_SUFFIX}")
- endif()
- if (BLA_VENDOR MATCHES "_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS_WIN_THREAD
- "mkl_sequential${BLAS_mkl_DLL_SUFFIX}")
- endif()
-
- # Cartesian product of the above
- foreach (MAIN ${BLAS_SEARCH_LIBS_WIN_MAIN})
- foreach (THREAD ${BLAS_SEARCH_LIBS_WIN_THREAD})
- list(APPEND BLAS_SEARCH_LIBS
- "${MAIN} ${THREAD} mkl_core${BLAS_mkl_DLL_SUFFIX}")
- endforeach()
- endforeach()
- else ()
- if (BLA_VENDOR STREQUAL "Intel10_32" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR STREQUAL "All")
- # old version
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core guide")
-
- # mkl >= 10.3
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_${BLAS_mkl_THREADING}_thread mkl_core ${BLAS_mkl_OMP}")
- endif ()
- if (BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_${BLAS_mkl_INTFACE}_${BLAS_mkl_ILP_MODE} mkl_sequential mkl_core")
- endif ()
-
- #older vesions of intel mkl libs
- if (BLA_VENDOR STREQUAL "Intel" OR BLA_VENDOR STREQUAL "All")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_ia32")
- list(APPEND BLAS_SEARCH_LIBS
- "mkl_em64t")
- endif ()
- endif ()
- endif ()
-
- if (DEFINED ENV{MKLROOT})
- if (BLA_VENDOR STREQUAL "Intel10_32")
- set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/ia32")
- elseif (BLA_VENDOR MATCHES "^Intel10_64i?lp$" OR BLA_VENDOR MATCHES "^Intel10_64i?lp_seq$")
- set(_BLAS_MKLROOT_LIB_DIR "$ENV{MKLROOT}/lib/intel64")
- endif ()
- endif ()
- if (_BLAS_MKLROOT_LIB_DIR)
- if (WIN32)
- string(APPEND _BLAS_MKLROOT_LIB_DIR "_win")
- elseif (APPLE)
- string(APPEND _BLAS_MKLROOT_LIB_DIR "_mac")
- else ()
- string(APPEND _BLAS_MKLROOT_LIB_DIR "_lin")
- endif ()
- endif ()
-
- foreach (IT ${BLAS_SEARCH_LIBS})
- string(REPLACE " " ";" SEARCH_LIBS ${IT})
- if (NOT ${_LIBRARIES})
- check_fortran_libraries(
- ${_LIBRARIES}
- BLAS
- ${BLAS_mkl_SEARCH_SYMBOL}
- ""
- "${SEARCH_LIBS}"
- "${CMAKE_THREAD_LIBS_INIT};${BLAS_mkl_LM};${BLAS_mkl_LDL}"
- "${_BLAS_MKLROOT_LIB_DIR}"
- )
- endif ()
- endforeach ()
-
- endif ()
- unset(BLAS_mkl_ILP_MODE)
- unset(BLAS_mkl_INTFACE)
- unset(BLAS_mkl_THREADING)
- unset(BLAS_mkl_OMP)
- unset(BLAS_mkl_DLL_SUFFIX)
- unset(BLAS_mkl_LM)
- unset(BLAS_mkl_LDL)
- endif ()
-endif ()
-
-if(BLA_F95)
- find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS95_LIBRARIES)
- set(BLAS95_FOUND ${BLAS_FOUND})
- if(BLAS_FOUND)
- set(BLAS_LIBRARIES "${BLAS95_LIBRARIES}")
- endif()
-endif()
-
-if (BLA_VENDOR STREQUAL "Goto" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # gotoblas (http://www.tacc.utexas.edu/tacc-projects/gotoblas2)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "goto2"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "OpenBLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # OpenBLAS (http://www.openblas.net)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "openblas"
- ""
- )
- endif()
- if(NOT BLAS_LIBRARIES)
- find_package(Threads)
- # OpenBLAS (http://www.openblas.net)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "openblas"
- "${CMAKE_THREAD_LIBS_INIT}"
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "FLAME" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # FLAME's blis library (https://github.com/flame/blis)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "blis"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "ATLAS" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- # BLAS in ATLAS library? (http://math-atlas.sourceforge.net/)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- dgemm
- ""
- "f77blas;atlas"
- ""
- )
- endif()
-endif ()
-
-# BLAS in PhiPACK libraries? (requires generic BLAS lib, too)
-if (BLA_VENDOR STREQUAL "PhiPACK" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "sgemm;dgemm;blas"
- ""
- )
- endif()
-endif ()
-
-# BLAS in Alpha CXML library?
-if (BLA_VENDOR STREQUAL "CXML" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "cxml"
- ""
- )
- endif()
-endif ()
-
-# BLAS in Alpha DXML library? (now called CXML, see above)
-if (BLA_VENDOR STREQUAL "DXML" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "dxml"
- ""
- )
- endif()
-endif ()
-
-# BLAS in Sun Performance library?
-if (BLA_VENDOR STREQUAL "SunPerf" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- "-xlic_lib=sunperf"
- "sunperf;sunmath"
- ""
- )
- if(BLAS_LIBRARIES)
- set(BLAS_LINKER_FLAGS "-xlic_lib=sunperf")
- endif()
- endif()
-endif ()
-
-# BLAS in SCSL library? (SGI/Cray Scientific Library)
-if (BLA_VENDOR STREQUAL "SCSL" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "scsl"
- ""
- )
- endif()
-endif ()
-
-# BLAS in SGIMATH library?
-if (BLA_VENDOR STREQUAL "SGIMATH" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "complib.sgimath"
- ""
- )
- endif()
-endif ()
-
-# BLAS in IBM ESSL library? (requires generic BLAS lib, too)
-if (BLA_VENDOR STREQUAL "IBMESSL" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "essl;blas"
- ""
- )
- endif()
-endif ()
-
-#BLAS in acml library?
-if (BLA_VENDOR MATCHES "ACML" OR BLA_VENDOR STREQUAL "All")
- if( ((BLA_VENDOR STREQUAL "ACML") AND (NOT BLAS_ACML_LIB_DIRS)) OR
- ((BLA_VENDOR STREQUAL "ACML_MP") AND (NOT BLAS_ACML_MP_LIB_DIRS)) OR
- ((BLA_VENDOR STREQUAL "ACML_GPU") AND (NOT BLAS_ACML_GPU_LIB_DIRS))
- )
- # try to find acml in "standard" paths
- if( WIN32 )
- file( GLOB _ACML_ROOT "C:/AMD/acml*/ACML-EULA.txt" )
- else()
- file( GLOB _ACML_ROOT "/opt/acml*/ACML-EULA.txt" )
- endif()
- if( WIN32 )
- file( GLOB _ACML_GPU_ROOT "C:/AMD/acml*/GPGPUexamples" )
- else()
- file( GLOB _ACML_GPU_ROOT "/opt/acml*/GPGPUexamples" )
- endif()
- list(GET _ACML_ROOT 0 _ACML_ROOT)
- list(GET _ACML_GPU_ROOT 0 _ACML_GPU_ROOT)
- if( _ACML_ROOT )
- get_filename_component( _ACML_ROOT ${_ACML_ROOT} PATH )
- if( SIZEOF_INTEGER EQUAL 8 )
- set( _ACML_PATH_SUFFIX "_int64" )
- else()
- set( _ACML_PATH_SUFFIX "" )
- endif()
- if( CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" )
- set( _ACML_COMPILER32 "ifort32" )
- set( _ACML_COMPILER64 "ifort64" )
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "SunPro" )
- set( _ACML_COMPILER32 "sun32" )
- set( _ACML_COMPILER64 "sun64" )
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "PGI" )
- set( _ACML_COMPILER32 "pgi32" )
- if( WIN32 )
- set( _ACML_COMPILER64 "win64" )
- else()
- set( _ACML_COMPILER64 "pgi64" )
- endif()
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "Open64" )
- # 32 bit builds not supported on Open64 but for code simplicity
- # We'll just use the same directory twice
- set( _ACML_COMPILER32 "open64_64" )
- set( _ACML_COMPILER64 "open64_64" )
- elseif( CMAKE_Fortran_COMPILER_ID STREQUAL "NAG" )
- set( _ACML_COMPILER32 "nag32" )
- set( _ACML_COMPILER64 "nag64" )
- else()
- set( _ACML_COMPILER32 "gfortran32" )
- set( _ACML_COMPILER64 "gfortran64" )
- endif()
-
- if( BLA_VENDOR STREQUAL "ACML_MP" )
- set(_ACML_MP_LIB_DIRS
- "${_ACML_ROOT}/${_ACML_COMPILER32}_mp${_ACML_PATH_SUFFIX}/lib"
- "${_ACML_ROOT}/${_ACML_COMPILER64}_mp${_ACML_PATH_SUFFIX}/lib" )
- else()
- set(_ACML_LIB_DIRS
- "${_ACML_ROOT}/${_ACML_COMPILER32}${_ACML_PATH_SUFFIX}/lib"
- "${_ACML_ROOT}/${_ACML_COMPILER64}${_ACML_PATH_SUFFIX}/lib" )
- endif()
- endif()
-elseif(BLAS_${BLA_VENDOR}_LIB_DIRS)
- set(_${BLA_VENDOR}_LIB_DIRS ${BLAS_${BLA_VENDOR}_LIB_DIRS})
-endif()
-
-if( BLA_VENDOR STREQUAL "ACML_MP" )
- foreach( BLAS_ACML_MP_LIB_DIRS ${_ACML_MP_LIB_DIRS})
- check_fortran_libraries (
- BLAS_LIBRARIES
- BLAS
- sgemm
- "" "acml_mp;acml_mv" "" ${BLAS_ACML_MP_LIB_DIRS}
- )
- if( BLAS_LIBRARIES )
- break()
- endif()
- endforeach()
-elseif( BLA_VENDOR STREQUAL "ACML_GPU" )
- foreach( BLAS_ACML_GPU_LIB_DIRS ${_ACML_GPU_LIB_DIRS})
- check_fortran_libraries (
- BLAS_LIBRARIES
- BLAS
- sgemm
- "" "acml;acml_mv;CALBLAS" "" ${BLAS_ACML_GPU_LIB_DIRS}
- )
- if( BLAS_LIBRARIES )
- break()
- endif()
- endforeach()
-else()
- foreach( BLAS_ACML_LIB_DIRS ${_ACML_LIB_DIRS} )
- check_fortran_libraries (
- BLAS_LIBRARIES
- BLAS
- sgemm
- "" "acml;acml_mv" "" ${BLAS_ACML_LIB_DIRS}
- )
- if( BLAS_LIBRARIES )
- break()
- endif()
- endforeach()
-endif()
-
-# Either acml or acml_mp should be in LD_LIBRARY_PATH but not both
-if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "acml;acml_mv"
- ""
- )
-endif()
-if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "acml_mp;acml_mv"
- ""
- )
-endif()
-if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "acml;acml_mv;CALBLAS"
- ""
- )
-endif()
-endif () # ACML
-
-# Apple BLAS library?
-if (BLA_VENDOR STREQUAL "Apple" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- dgemm
- ""
- "Accelerate"
- ""
- )
- endif()
-endif ()
-
-if (BLA_VENDOR STREQUAL "NAS" OR BLA_VENDOR STREQUAL "All")
- if ( NOT BLAS_LIBRARIES )
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- dgemm
- ""
- "vecLib"
- ""
- )
- endif ()
-endif ()
-
-# Generic BLAS library?
-if (BLA_VENDOR STREQUAL "Generic" OR BLA_VENDOR STREQUAL "All")
- if(NOT BLAS_LIBRARIES)
- check_fortran_libraries(
- BLAS_LIBRARIES
- BLAS
- sgemm
- ""
- "blas"
- ""
- )
- endif()
-endif ()
-
-if(NOT BLA_F95)
- find_package_handle_standard_args(BLAS REQUIRED_VARS BLAS_LIBRARIES)
-endif()
-
-# On compilers that implicitly link BLAS (such as ftn, cc, and CC on Cray HPC machines)
-# we used a placeholder for empty BLAS_LIBRARIES to get through our logic above.
-if (BLAS_LIBRARIES STREQUAL "BLAS_LIBRARIES-PLACEHOLDER-FOR-EMPTY-LIBRARIES")
- set(BLAS_LIBRARIES "")
-endif()
-
-cmake_pop_check_state()
-set(CMAKE_FIND_LIBRARY_SUFFIXES ${_blas_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
diff --git a/ports/openblas/fix-pkg-config.patch b/ports/openblas/fix-pkg-config.patch
new file mode 100644
index 000000000..9ed84d1bb
--- /dev/null
+++ b/ports/openblas/fix-pkg-config.patch
@@ -0,0 +1,19 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c324e224..4b82d767 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -389,11 +389,9 @@ if(NOT NO_LAPACKE)
+ install (FILES ${CMAKE_BINARY_DIR}/lapacke_mangling.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/openblas${SUFFIX64})
+ endif()
+
+-include(FindPkgConfig QUIET)
+-if(PKG_CONFIG_FOUND)
+- configure_file(${PROJECT_SOURCE_DIR}/cmake/openblas.pc.in ${PROJECT_BINARY_DIR}/openblas${SUFFIX64}.pc @ONLY)
+- install (FILES ${PROJECT_BINARY_DIR}/openblas${SUFFIX64}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/)
+-endif()
++# Install pkg-config files
++configure_file(${PROJECT_SOURCE_DIR}/cmake/openblas.pc.in ${PROJECT_BINARY_DIR}/openblas${SUFFIX64}.pc @ONLY)
++install (FILES ${PROJECT_BINARY_DIR}/openblas${SUFFIX64}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/)
+
+
+ # GNUInstallDirs "DATADIR" wrong here; CMake search path wants "share".
diff --git a/ports/openblas/openblas_common.h b/ports/openblas/openblas_common.h
index 6652a17e9..9b798e577 100644
--- a/ports/openblas/openblas_common.h
+++ b/ports/openblas/openblas_common.h
@@ -13,6 +13,7 @@
#ifdef NEEDBUNDERSCORE
#define BLASFUNC(FUNC) FUNC##_
+
#else
#define BLASFUNC(FUNC) FUNC
#endif
@@ -57,18 +58,3 @@ typedef int blasint;
predefined macros with some compilers (e.g. GCC 4.7 on Linux). This occurs
as a side effect of including either <features.h> or <stdc-predef.h>. */
#include <stdio.h>
-#ifndef OPENBLAS_COMPLEX_STRUCT
-#define OPENBLAS_COMPLEX_STRUCT
-typedef struct { float real, imag; } openblas_complex_float;
-typedef struct { double real, imag; } openblas_complex_double;
-typedef struct { xdouble real, imag; } openblas_complex_xdouble;
-#define openblas_make_complex_float(real, imag) {(real), (imag)}
-#define openblas_make_complex_double(real, imag) {(real), (imag)}
-#define openblas_make_complex_xdouble(real, imag) {(real), (imag)}
-#define openblas_complex_float_real(z) ((z).real)
-#define openblas_complex_float_imag(z) ((z).imag)
-#define openblas_complex_double_real(z) ((z).real)
-#define openblas_complex_double_imag(z) ((z).imag)
-#define openblas_complex_xdouble_real(z) ((z).real)
-#define openblas_complex_xdouble_imag(z) ((z).imag)
-#endif \ No newline at end of file
diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake
index 57b9236ac..b1f2a512d 100644
--- a/ports/openblas/portfile.cmake
+++ b/ports/openblas/portfile.cmake
@@ -9,6 +9,7 @@ vcpkg_from_github(
fix-space-path.patch
fix-redefinition-function.patch
github_2481.patch
+ fix-pkg-config.patch
)
find_program(GIT NAMES git git.cmd)
@@ -57,7 +58,7 @@ if(VCPKG_TARGET_IS_UWP)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
- OPTIONS
+ OPTIONS
${COMMON_OPTIONS}
-DCMAKE_SYSTEM_PROCESSOR=AMD64
-DVS_WINRT_COMPONENT=TRUE
@@ -113,12 +114,8 @@ file(READ ${SOURCE_PATH}/cblas.h CBLAS_H)
string(REPLACE "#include \"common.h\"" "#include \"openblas_common.h\"" CBLAS_H "${CBLAS_H}")
file(WRITE ${CURRENT_PACKAGES_DIR}/include/cblas.h "${CBLAS_H}")
-# openblas is BSD
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
-
vcpkg_copy_pdbs()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/openblas/vcpkg-cmake-wrapper.cmake b/ports/openblas/vcpkg-cmake-wrapper.cmake
deleted file mode 100644
index fc074f33c..000000000
--- a/ports/openblas/vcpkg-cmake-wrapper.cmake
+++ /dev/null
@@ -1,2 +0,0 @@
-message(STATUS "Using VCPKG FindBLAS. Remove if CMake has been updated to account for Threads in OpenBLAS!")
-include(${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake)
diff --git a/ports/opencolorio/CONTROL b/ports/opencolorio/CONTROL
index 806609be0..9380823b2 100644
--- a/ports/opencolorio/CONTROL
+++ b/ports/opencolorio/CONTROL
@@ -1,6 +1,6 @@
Source: opencolorio
Version: 1.1.1
-Port-Version: 3
+Port-Version: 4
Homepage: https://opencolorio.org/
Description: OpenColorIO (OCIO) is a complete color management solution geared towards motion picture production with an emphasis on visual effects and computer animation. OCIO provides a straightforward and consistent user experience across all supporting applications while allowing for sophisticated back-end configuration options suitable for high-end production usage. OCIO is compatible with the Academy Color Encoding Specification (ACES) and is LUT-format agnostic, supporting many popular formats.
Build-Depends: glew[core], freeglut[core], lcms[core], yaml-cpp[core], tinyxml[core] \ No newline at end of file
diff --git a/ports/opencolorio/portfile.cmake b/ports/opencolorio/portfile.cmake
index 1a55713e6..6d970d3a6 100644
--- a/ports/opencolorio/portfile.cmake
+++ b/ports/opencolorio/portfile.cmake
@@ -9,9 +9,9 @@ endif()
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
- REPO imageworks/OpenColorIO
- REF v1.1.1
- SHA512 bed722f9ddce1887d28aacef2882debccd7c3f3c0c708d2723fea58a097de9f02721af9e85453e089ffda5406aef593ab6536c6886307823c132aa787e492e33
+ REPO AcademySoftwareFoundation/OpenColorIO
+ REF ebdec4111f449bea995d01ecd9693b7e704498fe # v1.1.1
+ SHA512 b93796541f8b086f137eaebeef102e29a4aabac6dba5b1696c9ab23d62af39b233ca52ce97b04ea432d85ae0a1fe186939c52aab0cd2c4cd5d2775ac5c021eef
HEAD_REF master
PATCHES
0001-lcms-dependency-search.patch
@@ -61,4 +61,4 @@ file(REMOVE
${CURRENT_PACKAGES_DIR}/debug/OpenColorIOConfig.cmake
)
-file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
diff --git a/ports/openmama/CONTROL b/ports/openmama/CONTROL
index 5dc512d82..5f0fd3c5c 100644
--- a/ports/openmama/CONTROL
+++ b/ports/openmama/CONTROL
@@ -1,5 +1,7 @@
Source: openmama
Version: 6.3.0
+Port-Version: 1
Build-Depends: libevent, apr, qpid-proton
+Supports: windows&(x64|x86)
Homepage: https://github.com/OpenMAMA/OpenMAMA
Description: OpenMAMA is a high performance vendor neutral lightweight wrapper that provides a common API interface to different middleware and messaging solutions across a variety of platforms and languages.
diff --git a/ports/openmama/portfile.cmake b/ports/openmama/portfile.cmake
index 997d11ec3..34b737e3e 100644
--- a/ports/openmama/portfile.cmake
+++ b/ports/openmama/portfile.cmake
@@ -11,74 +11,43 @@ vcpkg_from_github(
HEAD_REF next
)
-set(OPENMAMA_TARGET_ARCH ${TRIPLET_SYSTEM_ARCH})
-if(${TRIPLET_SYSTEM_ARCH} STREQUAL x64)
- set(OPENMAMA_TARGET_ARCH x86_64)
-endif()
-
-# Clean from any previous builds
-vcpkg_execute_required_process(
- COMMAND ${SCONS}
- -c
- target_arch=${OPENMAMA_TARGET_ARCH}
- libevent_home=${CURRENT_INSTALLED_DIR}
- apr_home=${CURRENT_INSTALLED_DIR}
- qpid_home=${CURRENT_INSTALLED_DIR}
- vcpkg_build=y
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME clean-${TARGET_TRIPLET}.log
-)
-
-# This build
-vcpkg_execute_required_process(
- COMMAND ${SCONS}
- with_unittest=False
- with_examples=False
- product=mamda
- lex=${FLEX}
- middleware=qpid
- buildtype=dynamic,dynamic-debug
- prefix=\#install
- with_dependency_runtimes=False
- target_arch=${OPENMAMA_TARGET_ARCH}
- libevent_home=${CURRENT_INSTALLED_DIR}
- apr_home=${CURRENT_INSTALLED_DIR}
- qpid_home=${CURRENT_INSTALLED_DIR}
- vcpkg_build=y
- WORKING_DIRECTORY ${SOURCE_PATH}
- LOGNAME build-${TARGET_TRIPLET}.log
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DPROTON_ROOT=${CURRENT_INSTALLED_DIR}
+ -DAPR_ROOT=${CURRENT_INSTALLED_DIR}
+ -DINSTALL_RUNTIME_DEPENDENCIES=OFF
+ -DFLEX_EXECUTABLE=${FLEX}
+ -DWITH_EXAMPLES=OFF
+ -DWITH_TESTTOOLS=OFF
)
-# Remove dependency files which build system creates for convenience
-file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/libapr-1.dll)
-file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/libapr-1.pdb)
-file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/libapr-1.dll)
-file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/libapr-1.pdb)
-file(REMOVE ${SOURCE_PATH}/install/bin/dynamic/qpid-proton.dll)
-file(REMOVE ${SOURCE_PATH}/install/bin/dynamic-debug/qpid-protond.dll)
-
-# Custom install target - the build system doesn't really
-# do prefixes properly and it has a different directory
-# structure than vcpkg expects so reorganizing here
-file(COPY ${SOURCE_PATH}/install/include
- DESTINATION ${CURRENT_PACKAGES_DIR})
-file(COPY ${SOURCE_PATH}/install/lib/dynamic/
- DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
-file(COPY ${SOURCE_PATH}/install/lib/dynamic-debug/
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
-file(COPY ${SOURCE_PATH}/install/bin/dynamic/
- DESTINATION ${CURRENT_PACKAGES_DIR}/bin
- FILES_MATCHING PATTERN "*.dll")
-file(COPY ${SOURCE_PATH}/install/bin/dynamic-debug/
- DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
- FILES_MATCHING PATTERN "*.dll")
+vcpkg_install_cmake()
# Copy across license files and copyright
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/openmama)
-file(COPY ${SOURCE_PATH}/install/LICENSE.md
- ${SOURCE_PATH}/install/LICENSE-3RD-PARTY.txt
+file(COPY ${SOURCE_PATH}/LICENSE.md
+ ${SOURCE_PATH}/LICENSE-3RD-PARTY.txt
DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmama/)
-file(COPY ${SOURCE_PATH}/install/LICENSE.md
+file(COPY ${SOURCE_PATH}/LICENSE.md
DESTINATION ${CURRENT_PACKAGES_DIR}/share/openmama/copyright)
+# Clean up LICENSE file - vcpkg doesn't expect it to be there
+file(REMOVE ${CURRENT_PACKAGES_DIR}/LICENSE.MD ${CURRENT_PACKAGES_DIR}/debug/LICENSE.MD)
+
+# Temporary workaround until upstream project puts dll in right place
+if(EXISTS "${CURRENT_PACKAGES_DIR}/lib/libmamaplugindqstrategymd.dll")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/libmamaplugindqstrategymd.dll ${CURRENT_PACKAGES_DIR}/bin/libmamaplugindqstrategymd.dll)
+endif()
+if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/libmamaplugindqstrategymd.dll")
+ file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/libmamaplugindqstrategymd.dll ${CURRENT_PACKAGES_DIR}/debug/bin/libmamaplugindqstrategymd.dll)
+endif()
+
+# Vcpkg does not expect include files to be in the debug directory
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+# Vcpkg does not like this header name and shouldn't be required anyway, so remove it
+file(REMOVE "${CURRENT_PACKAGES_DIR}/include/platform.h")
+
vcpkg_copy_pdbs()
diff --git a/ports/openmvg/CONTROL b/ports/openmvg/CONTROL
index dd7dc1e9b..288d530ac 100644
--- a/ports/openmvg/CONTROL
+++ b/ports/openmvg/CONTROL
@@ -1,7 +1,8 @@
Source: openmvg
Version: 1.5
+Port-Version: 1
Description: open Multiple View Geometry library. Basis for 3D computer vision and Structure from Motion.
-Build-Depends: coinutils, clp, osi, liblemon, flann, eigen3, ceres, cereal, libjpeg-turbo, tiff, libpng, zlib, suitesparse
+Build-Depends: coinutils, clp, osi, liblemon, flann, eigen3, ceres[suitesparse,cxsparse], cereal, libjpeg-turbo, tiff, libpng, zlib, vlfeat
Feature: opencv
Build-Depends: opencv[contrib]
@@ -9,3 +10,7 @@ Description: opencv support for openmvg
Feature: openmp
Description: openmp support for openmvg
+
+Feature: software
+Build-Depends: qt5-base, qt5-svg
+Description: build openMVG tools
diff --git a/ports/openmvg/fixcmake.patch b/ports/openmvg/build_fixes.patch
index fc84774c4..fff8846d2 100644
--- a/ports/openmvg/fixcmake.patch
+++ b/ports/openmvg/build_fixes.patch
@@ -1,421 +1,723 @@
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 9cfd06c..a4dea06 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -14,6 +14,7 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
- message(FATAL_ERROR "In-source builds not allowed.")
- endif()
-
-+if(0)
- # ==============================================================================
- # OpenMVG build options
- # ==============================================================================
-@@ -31,7 +32,7 @@ option(OpenMVG_USE_OPENMP "Enable OpenMP parallelization" ON)
- # and openMVG simultaneously
- # ==============================================================================
- option(OpenMVG_USE_OPENCV "Build or not opencv+openMVG samples programs" OFF)
--
-+endif()
- # ==============================================================================
- # Since OpenCV 3, SIFT is no longer in the default modules. See
- # https://github.com/itseez/opencv_contrib for more informations.
-@@ -85,6 +86,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
- register_definitions(-DOPENMVG_STD_UNORDERED_MAP)
- endif()
-
-+if(0)
- # ==============================================================================
- # Check that submodule have been initialized and updated
- # ==============================================================================
-@@ -93,6 +95,7 @@ if (NOT EXISTS ${PROJECT_SOURCE_DIR}/dependencies/cereal/include)
- "\n submodule(s) are missing, please update your repository:\n"
- " > git submodule update -i\n")
- endif()
-+endif()
-
- # ==============================================================================
- # Additional cmake find modules
-@@ -128,7 +131,6 @@ if (OpenMVG_USE_OPENMP)
- find_package(OpenMP)
- if (OPENMP_FOUND)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
-- option(OpenMVG_USE_OPENMP "Use OpenMP for parallelization" ON)
- register_definitions(-DOPENMVG_USE_OPENMP)
- if (NOT MSVC)
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
-@@ -139,11 +141,6 @@ if (OpenMVG_USE_OPENMP)
- endif()
- endif (NOT MSVC)
- endif (OPENMP_FOUND)
--else (OpenMVG_USE_OPENMP)
-- option(OpenMVG_USE_OPENMP "Use OpenMP for parallelization" OFF)
-- include(UpdateCacheVariable)
-- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENMP OFF)
-- remove_definitions(-DOPENMVG_USE_OPENMP)
- endif (OpenMVG_USE_OPENMP)
-
- # ==============================================================================
-@@ -182,6 +179,7 @@ if (OpenMVG_BUILD_OPENGL_EXAMPLES)
- set_property(TARGET glfw PROPERTY FOLDER OpenMVG/3rdParty/glfw)
- endif (OpenMVG_BUILD_OPENGL_EXAMPLES)
-
-+if(0)
- # Dependencies install rules
- install(
- DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/
-@@ -189,7 +187,7 @@ install(
- COMPONENT headers
- FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
- )
--
-+endif()
- # ==============================================================================
- # --END-- SUBMODULE CONFIGURATION
- # ==============================================================================
-@@ -225,6 +223,7 @@ ENDMACRO(UNIT_TEST)
- # - external by default
- # - internal if cereal not found
- # ==============================================================================
-+if(0)
- find_package(cereal QUIET CONFIG)
- if (NOT TARGET cereal)
- add_library(cereal INTERFACE)
-@@ -237,6 +236,10 @@ if (NOT TARGET cereal)
-
- set(OpenMVG_USE_INTERNAL_CEREAL ON)
- endif()
-+endif()
-+
-+find_package(cereal REQUIRED CONFIG)
-+get_target_property(CEREAL_INCLUDE_DIRS cereal INTERFACE_INCLUDE_DIRECTORIES)
-
- # ==============================================================================
- # Eigen
-@@ -245,6 +248,7 @@ endif()
- # - external if EIGEN_INCLUDE_DIR_HINTS is defined
- # - internal if Eigen not found
- # ==============================================================================
-+if(0)
- find_package(Eigen3 QUIET)
- if (NOT Eigen3_FOUND)
- set(EIGEN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/eigen)
-@@ -253,13 +257,17 @@ if (NOT Eigen3_FOUND)
- else()
- set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
- endif()
-+endif()
-
-+find_package(Eigen3 REQUIRED)
-+set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
- # ==============================================================================
- # Ceres
- # ==============================================================================
- # - external by default if CERES_DIR_HINTS or find_package found a valid Ceres
- # - internal if ceres not found (ceres-solver+cxsparse+miniglog)
- # ==============================================================================
-+if(0)
- find_package(Ceres QUIET HINTS ${CERES_DIR_HINTS})
- if (NOT Ceres_FOUND)
- set(OpenMVG_USE_INTERNAL_CERES ON)
-@@ -271,13 +279,16 @@ if (NOT Ceres_FOUND)
- STRING(REGEX REPLACE "version ([0-9.]+).*" "\\1" CERES_VERSION ${CERES_CONFIG})
- set(CERES_LIBRARIES openMVG_ceres)
- endif()
-+endif()
-
-+find_package(Ceres REQUIRED)
- # ==============================================================================
- # Flann
- # ==============================================================================
- # - internal by default (flann),
- # - external if FLANN_INCLUDE_DIR_HINTS and a valid Flann setup is found
- # ==============================================================================
-+if(0)
- if (NOT DEFINED FLANN_INCLUDE_DIR_HINTS)
- set(FLANN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp)
- set(OpenMVG_USE_INTERNAL_FLANN ON)
-@@ -286,13 +297,16 @@ find_package(Flann QUIET)
- if (NOT FLANN_FOUND OR OpenMVG_USE_INTERNAL_FLANN)
- set(FLANN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp)
- endif()
-+endif()
-
-+find_package(flann REQUIRED)
- # ==============================================================================
- # CoinUtils
- # ==============================================================================
- # - internal by default (CoinUtils),
- # - external if COINUTILS_INCLUDE_DIR_HINTS and a valid CoinUtils setup is found
- # ==============================================================================
-+if(0)
- if (NOT DEFINED COINUTILS_INCLUDE_DIR_HINTS)
- set(COINUTILS_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/CoinUtils/src/)
- set(OpenMVG_USE_INTERNAL_COINUTILS ON)
-@@ -302,13 +316,16 @@ if (NOT DEFINED COINUTILS_INCLUDE_DIR_HINTS)
- else()
- find_package(CoinUtils QUIET)
- endif()
-+endif()
-
-+find_package(CoinUtils REQUIRED)
- ## ==============================================================================
- ## Clp
- ## ==============================================================================
- ## - internal by default (Clp),
- ## - external if CLP_INCLUDE_DIR_HINTS and a valid Clp setup is found
- ## ==============================================================================
-+if(0)
- if (NOT DEFINED CLP_INCLUDE_DIR_HINTS)
- set(CLP_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Clp/src/)
- set(OpenMVG_USE_INTERNAL_CLP ON)
-@@ -320,6 +337,9 @@ if (NOT DEFINED CLP_INCLUDE_DIR_HINTS)
- else()
- find_package(Clp QUIET)
- endif()
-+endif()
-+
-+find_package(Clp REQUIRED)
-
- # ==============================================================================
- # Osi
-@@ -327,6 +347,7 @@ endif()
- # - internal by default (Osi),
- # - external if OSI_INCLUDE_DIR_HINTS and a valid Osi setup is found
- # ==============================================================================
-+if(0)
- if (NOT DEFINED OSI_INCLUDE_DIR_HINTS)
- set(OSI_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Osi/src/)
- set(OpenMVG_USE_INTERNAL_OSI ON)
-@@ -336,6 +357,9 @@ if (NOT DEFINED OSI_INCLUDE_DIR_HINTS)
- else()
- find_package(Osi QUIET)
- endif()
-+endif()
-+
-+find_package(Osi REQUIRED)
-
- # ==============================================================================
- # Internal CLP/OSI/COINUTILS libraries:
-@@ -354,6 +378,7 @@ endif()
- # - internal by default (Lemon),
- # - external if LEMON_INCLUDE_DIR_HINTS and a valid Lemon setup is found
- # ==============================================================================
-+if(0)
- if (NOT DEFINED LEMON_INCLUDE_DIR_HINTS)
- set(LEMON_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/lemon)
- set(OpenMVG_USE_INTERNAL_LEMON ON)
-@@ -365,6 +390,9 @@ if (NOT LEMON_FOUND OR OpenMVG_USE_INTERNAL_LEMON)
- ${PROJECT_BINARY_DIR}/third_party/lemon)
- set(LEMON_LIBRARY openMVG_lemon)
- endif()
-+endif()
-+
-+find_package(LEMON REQUIRED)
-
- # ==============================================================================
- # OpenCV
-@@ -372,15 +400,13 @@ endif()
- # - only external and enabled only if OpenMVG_USE_OPENCV is set to ON
- # ==============================================================================
- if (OpenMVG_USE_OPENCV)
-- find_package( OpenCV QUIET )
-- if (NOT OpenCV_FOUND OR OpenCV_VERSION VERSION_LESS "3.0.0")
-- message(STATUS "OpenCV was not found (note that OpenCV version >= 3.0.0 is required). -> Disabling OpenCV support.")
-- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENCV OFF)
-- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OCVSIFT OFF)
-- endif()
-+ find_package( OpenCV REQUIRED )
- endif()
-
--
-+# ==============================================================================
-+# Suitesparse
-+# ==============================================================================
-+find_package(suitesparse REQUIRED)
- # ==============================================================================
- # Third-party libraries:
- # ==============================================================================
-@@ -472,67 +498,67 @@ message("** Use OpenCV SIFT features: " ${OpenMVG_USE_OCVSIFT})
-
- message("\n")
-
--if (DEFINED OpenMVG_USE_INTERNAL_CEREAL)
-+if (OpenMVG_USE_INTERNAL_CEREAL)
- message(STATUS "CEREAL: (internal)")
- else()
- message(STATUS "CEREAL: (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
-+if (OpenMVG_USE_INTERNAL_EIGEN)
- message(STATUS "EIGEN: " ${EIGEN_VERSION} " (internal)")
- else()
- message(STATUS "EIGEN: " ${EIGEN_VERSION} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_CERES)
-+if (OpenMVG_USE_INTERNAL_CERES)
- message(STATUS "CERES: " ${CERES_VERSION} " (internal)")
- else()
- message(STATUS "CERES: " ${CERES_VERSION} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_FLANN)
-+if (OpenMVG_USE_INTERNAL_FLANN)
- message(STATUS "FLANN: " ${FLANN_VERSION} " (internal)")
- else()
- message(STATUS "FLANN: " ${FLANN_VERSION} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_TIFF)
-+if (OpenMVG_USE_INTERNAL_TIFF)
- message(STATUS "LIBTIFF: " ${TIFF_VERSION_STRING} " (internal)")
- else()
- message(STATUS "LIBTIFF: " ${TIFF_VERSION_STRING} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_PNG)
-+if (OpenMVG_USE_INTERNAL_PNG)
- message(STATUS "LIBPNG: " ${PNG_VERSION_STRING} " (internal)")
- else()
- message(STATUS "LIBPNG: " ${PNG_VERSION_STRING} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_JPEG)
-+if (OpenMVG_USE_INTERNAL_JPEG)
- message(STATUS "LIBJPEG (internal)")
- else()
- message(STATUS "LIBJPEG (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_CLP)
-+if (OpenMVG_USE_INTERNAL_CLP)
- message(STATUS "CLP: " ${CLP_VERSION} " (internal)")
- else()
- message(STATUS "CLP: " ${CLP_VERSION} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_COINUTILS)
-+if (OpenMVG_USE_INTERNAL_COINUTILS)
- message(STATUS "COINUTILS: " ${COINUTILS_VERSION} " (internal)")
- else()
- message(STATUS "COINUTILS: " ${COINUTILS_VERSION} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_OSI)
-+if (OpenMVG_USE_INTERNAL_OSI)
- message(STATUS "OSI: " ${OSI_VERSION} " (internal)")
- else()
- message(STATUS "OSI: " ${OSI_VERSION} " (external)")
- endif()
-
--if (DEFINED OpenMVG_USE_INTERNAL_LEMON)
-+if (OpenMVG_USE_INTERNAL_LEMON)
- message(STATUS "LEMON: " ${LEMON_VERSION} " (internal)")
- else()
- message(STATUS "LEMON: " ${LEMON_VERSION} " (external)")
-diff --git a/src/cmakeFindModules/FindClp.cmake b/src/cmakeFindModules/FindClp.cmake
-index 8a69c23..6a81580 100644
---- a/src/cmakeFindModules/FindClp.cmake
-+++ b/src/cmakeFindModules/FindClp.cmake
-@@ -51,9 +51,8 @@ IF(EXISTS "${CLP_DIR}" AND NOT "${CLP_DIR}" STREQUAL "")
- SET(CLP_INCLUDE_DIR ${CLP_DIR})
-
- FIND_LIBRARY(CLP_LIBRARY NAMES Clp)
-- FIND_LIBRARY(CLPSOLVER_LIBRARY NAMES ClpSolver)
-- FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp)
--
-+ FIND_LIBRARY(CLPSOLVER_LIBRARY NAMES ClpSolver Clp)
-+ FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp Clp)
- # locate Clp libraries
- IF(DEFINED CLP_LIBRARY AND DEFINED CLPSOLVER_LIBRARY AND DEFINED OSICLP_LIBRARY)
- SET(CLP_LIBRARIES ${CLP_LIBRARY} ${CLPSOLVER_LIBRARY} ${OSICLP_LIBRARY})
-diff --git a/src/openMVG/linearProgramming/CMakeLists.txt b/src/openMVG/linearProgramming/CMakeLists.txt
-index cc5212f..acc57dd 100644
---- a/src/openMVG/linearProgramming/CMakeLists.txt
-+++ b/src/openMVG/linearProgramming/CMakeLists.txt
-@@ -15,16 +15,12 @@ target_link_libraries(openMVG_linearProgramming
- PUBLIC
- openMVG_numeric
- PRIVATE
-- ${CLP_LIBRARIES} # clp + solver wrapper
-- ${COINUTILS_LIBRARY} # container tools
-- ${OSI_LIBRARY} # generic LP
-+ Coin::Clp # clp + solver wrapper
-+ Coin::CoinUtils # container tools
-+ Coin::Osi # generic LP
- )
-
- target_include_directories(openMVG_linearProgramming
-- PRIVATE
-- ${CLP_INCLUDE_DIRS}
-- ${COINUTILS_INCLUDE_DIRS}
-- ${OSI_INCLUDE_DIRS}
- PUBLIC
- $<INSTALL_INTERFACE:include>
- )
-diff --git a/src/openMVG/matching/CMakeLists.txt b/src/openMVG/matching/CMakeLists.txt
-index 5fcd972..b21ea7b 100644
---- a/src/openMVG/matching/CMakeLists.txt
-+++ b/src/openMVG/matching/CMakeLists.txt
-@@ -18,6 +18,7 @@ list(REMOVE_ITEM matching_files_cpp ${REMOVEFILESUNITTEST})
-
- set(THREADS_PREFER_PTHREAD_FLAG ON)
- find_package(Threads REQUIRED)
-+find_package(flann REQUIRED)
-
- set_source_files_properties(${matching_files_cpp} PROPERTIES LANGUAGE CXX)
- add_library(openMVG_matching
-@@ -39,10 +40,10 @@ target_link_libraries(openMVG_matching
- Threads::Threads
- cereal
- )
--if (NOT DEFINED OpenMVG_USE_INTERNAL_FLANN)
-+if (NOT OpenMVG_USE_INTERNAL_FLANN)
- target_link_libraries(openMVG_matching
- PUBLIC
-- ${FLANN_LIBRARIES}
-+ flann::flann
- )
- endif()
- set_target_properties(openMVG_matching PROPERTIES SOVERSION ${OPENMVG_VERSION_MAJOR} VERSION "${OPENMVG_VERSION_MAJOR}.${OPENMVG_VERSION_MINOR}")
-diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt
-index 816a941..f0b7145 100644
---- a/src/third_party/CMakeLists.txt
-+++ b/src/third_party/CMakeLists.txt
-@@ -18,7 +18,7 @@ add_subdirectory(stlplus3)
- set(STLPLUS_LIBRARY openMVG_stlplus PARENT_SCOPE)
-
- # Add graph library
--if(DEFINED OpenMVG_USE_INTERNAL_LEMON)
-+if(OpenMVG_USE_INTERNAL_LEMON)
- add_subdirectory(lemon)
- set_property(TARGET openMVG_lemon PROPERTY FOLDER OpenMVG/3rdParty/lemon)
- set_property(TARGET check PROPERTY FOLDER OpenMVG/3rdParty/lemon)
-@@ -68,7 +68,7 @@ endif (NOT TIFF_FOUND)
- add_subdirectory(vectorGraphics)
-
- # Add ceres-solver (A Nonlinear Least Squares Minimizer)
--if (DEFINED OpenMVG_USE_INTERNAL_CERES)
-+if (OpenMVG_USE_INTERNAL_CERES)
- add_subdirectory(cxsparse)
- add_subdirectory(ceres-solver)
- set_property(TARGET openMVG_cxsparse PROPERTY FOLDER OpenMVG/3rdParty/ceres)
-@@ -76,7 +76,7 @@ if (DEFINED OpenMVG_USE_INTERNAL_CERES)
- endif()
-
- # Add an Approximate Nearest Neighbor library
--if (DEFINED OpenMVG_USE_INTERNAL_FLANN)
-+if (OpenMVG_USE_INTERNAL_FLANN)
- set(FLANN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/flann/src/cpp)
- add_subdirectory(flann)
- endif()
-@@ -90,7 +90,7 @@ add_subdirectory(fast)
- ##
- # Install Header only libraries if necessary
- ##
--if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
-+if (OpenMVG_USE_INTERNAL_EIGEN)
- #Configure Eigen install
- set(EIGEN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen)
- add_subdirectory(eigen)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 9cfd06c..8859469 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -14,6 +14,7 @@ if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
+ message(FATAL_ERROR "In-source builds not allowed.")
+ endif()
+
++if(0)
+ # ==============================================================================
+ # OpenMVG build options
+ # ==============================================================================
+@@ -31,7 +32,7 @@ option(OpenMVG_USE_OPENMP "Enable OpenMP parallelization" ON)
+ # and openMVG simultaneously
+ # ==============================================================================
+ option(OpenMVG_USE_OPENCV "Build or not opencv+openMVG samples programs" OFF)
+-
++endif()
+ # ==============================================================================
+ # Since OpenCV 3, SIFT is no longer in the default modules. See
+ # https://github.com/itseez/opencv_contrib for more informations.
+@@ -85,6 +86,7 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ register_definitions(-DOPENMVG_STD_UNORDERED_MAP)
+ endif()
+
++if(0)
+ # ==============================================================================
+ # Check that submodule have been initialized and updated
+ # ==============================================================================
+@@ -93,6 +95,7 @@ if (NOT EXISTS ${PROJECT_SOURCE_DIR}/dependencies/cereal/include)
+ "\n submodule(s) are missing, please update your repository:\n"
+ " > git submodule update -i\n")
+ endif()
++endif()
+
+ # ==============================================================================
+ # Additional cmake find modules
+@@ -128,7 +131,6 @@ if (OpenMVG_USE_OPENMP)
+ find_package(OpenMP)
+ if (OPENMP_FOUND)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+- option(OpenMVG_USE_OPENMP "Use OpenMP for parallelization" ON)
+ register_definitions(-DOPENMVG_USE_OPENMP)
+ if (NOT MSVC)
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+@@ -139,11 +141,6 @@ if (OpenMVG_USE_OPENMP)
+ endif()
+ endif (NOT MSVC)
+ endif (OPENMP_FOUND)
+-else (OpenMVG_USE_OPENMP)
+- option(OpenMVG_USE_OPENMP "Use OpenMP for parallelization" OFF)
+- include(UpdateCacheVariable)
+- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENMP OFF)
+- remove_definitions(-DOPENMVG_USE_OPENMP)
+ endif (OpenMVG_USE_OPENMP)
+
+ # ==============================================================================
+@@ -160,10 +157,10 @@ endif()
+ # ==============================================================================
+ # IMAGE IO detection
+ # ==============================================================================
+-find_package(JPEG QUIET)
+-find_package(PNG QUIET)
+-find_package(TIFF QUIET)
+-
++find_package(JPEG REQUIRED)
++find_package(PNG REQUIRED)
++find_package(TIFF REQUIRED)
++find_package(vlfeat REQUIRED)
+ # Folders
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+@@ -182,6 +179,7 @@ if (OpenMVG_BUILD_OPENGL_EXAMPLES)
+ set_property(TARGET glfw PROPERTY FOLDER OpenMVG/3rdParty/glfw)
+ endif (OpenMVG_BUILD_OPENGL_EXAMPLES)
+
++if(0)
+ # Dependencies install rules
+ install(
+ DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/
+@@ -189,7 +187,7 @@ install(
+ COMPONENT headers
+ FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
+ )
+-
++endif()
+ # ==============================================================================
+ # --END-- SUBMODULE CONFIGURATION
+ # ==============================================================================
+@@ -225,6 +223,7 @@ ENDMACRO(UNIT_TEST)
+ # - external by default
+ # - internal if cereal not found
+ # ==============================================================================
++if(0)
+ find_package(cereal QUIET CONFIG)
+ if (NOT TARGET cereal)
+ add_library(cereal INTERFACE)
+@@ -237,6 +236,10 @@ if (NOT TARGET cereal)
+
+ set(OpenMVG_USE_INTERNAL_CEREAL ON)
+ endif()
++endif()
++
++find_package(cereal REQUIRED CONFIG)
++get_target_property(CEREAL_INCLUDE_DIRS cereal INTERFACE_INCLUDE_DIRECTORIES)
+
+ # ==============================================================================
+ # Eigen
+@@ -245,6 +248,7 @@ endif()
+ # - external if EIGEN_INCLUDE_DIR_HINTS is defined
+ # - internal if Eigen not found
+ # ==============================================================================
++if(0)
+ find_package(Eigen3 QUIET)
+ if (NOT Eigen3_FOUND)
+ set(EIGEN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/eigen)
+@@ -253,13 +257,17 @@ if (NOT Eigen3_FOUND)
+ else()
+ set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
+ endif()
++endif()
+
++find_package(Eigen3 REQUIRED)
++set(EIGEN_INCLUDE_DIRS ${EIGEN3_INCLUDE_DIR})
+ # ==============================================================================
+ # Ceres
+ # ==============================================================================
+ # - external by default if CERES_DIR_HINTS or find_package found a valid Ceres
+ # - internal if ceres not found (ceres-solver+cxsparse+miniglog)
+ # ==============================================================================
++if(0)
+ find_package(Ceres QUIET HINTS ${CERES_DIR_HINTS})
+ if (NOT Ceres_FOUND)
+ set(OpenMVG_USE_INTERNAL_CERES ON)
+@@ -271,13 +279,16 @@ if (NOT Ceres_FOUND)
+ STRING(REGEX REPLACE "version ([0-9.]+).*" "\\1" CERES_VERSION ${CERES_CONFIG})
+ set(CERES_LIBRARIES openMVG_ceres)
+ endif()
++endif()
+
++find_package(Ceres REQUIRED)
+ # ==============================================================================
+ # Flann
+ # ==============================================================================
+ # - internal by default (flann),
+ # - external if FLANN_INCLUDE_DIR_HINTS and a valid Flann setup is found
+ # ==============================================================================
++if(0)
+ if (NOT DEFINED FLANN_INCLUDE_DIR_HINTS)
+ set(FLANN_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp)
+ set(OpenMVG_USE_INTERNAL_FLANN ON)
+@@ -286,13 +297,16 @@ find_package(Flann QUIET)
+ if (NOT FLANN_FOUND OR OpenMVG_USE_INTERNAL_FLANN)
+ set(FLANN_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/flann/src/cpp)
+ endif()
++endif()
+
++find_package(flann REQUIRED)
+ # ==============================================================================
+ # CoinUtils
+ # ==============================================================================
+ # - internal by default (CoinUtils),
+ # - external if COINUTILS_INCLUDE_DIR_HINTS and a valid CoinUtils setup is found
+ # ==============================================================================
++if(0)
+ if (NOT DEFINED COINUTILS_INCLUDE_DIR_HINTS)
+ set(COINUTILS_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/CoinUtils/src/)
+ set(OpenMVG_USE_INTERNAL_COINUTILS ON)
+@@ -302,13 +316,16 @@ if (NOT DEFINED COINUTILS_INCLUDE_DIR_HINTS)
+ else()
+ find_package(CoinUtils QUIET)
+ endif()
++endif()
+
++find_package(CoinUtils REQUIRED)
+ ## ==============================================================================
+ ## Clp
+ ## ==============================================================================
+ ## - internal by default (Clp),
+ ## - external if CLP_INCLUDE_DIR_HINTS and a valid Clp setup is found
+ ## ==============================================================================
++if(0)
+ if (NOT DEFINED CLP_INCLUDE_DIR_HINTS)
+ set(CLP_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Clp/src/)
+ set(OpenMVG_USE_INTERNAL_CLP ON)
+@@ -320,6 +337,9 @@ if (NOT DEFINED CLP_INCLUDE_DIR_HINTS)
+ else()
+ find_package(Clp QUIET)
+ endif()
++endif()
++
++find_package(Clp REQUIRED)
+
+ # ==============================================================================
+ # Osi
+@@ -327,6 +347,7 @@ endif()
+ # - internal by default (Osi),
+ # - external if OSI_INCLUDE_DIR_HINTS and a valid Osi setup is found
+ # ==============================================================================
++if(0)
+ if (NOT DEFINED OSI_INCLUDE_DIR_HINTS)
+ set(OSI_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/dependencies/osi_clp/Osi/src/)
+ set(OpenMVG_USE_INTERNAL_OSI ON)
+@@ -336,6 +357,9 @@ if (NOT DEFINED OSI_INCLUDE_DIR_HINTS)
+ else()
+ find_package(Osi QUIET)
+ endif()
++endif()
++
++find_package(Osi REQUIRED)
+
+ # ==============================================================================
+ # Internal CLP/OSI/COINUTILS libraries:
+@@ -354,6 +378,7 @@ endif()
+ # - internal by default (Lemon),
+ # - external if LEMON_INCLUDE_DIR_HINTS and a valid Lemon setup is found
+ # ==============================================================================
++if(0)
+ if (NOT DEFINED LEMON_INCLUDE_DIR_HINTS)
+ set(LEMON_INCLUDE_DIR_HINTS ${CMAKE_CURRENT_SOURCE_DIR}/third_party/lemon)
+ set(OpenMVG_USE_INTERNAL_LEMON ON)
+@@ -365,6 +390,9 @@ if (NOT LEMON_FOUND OR OpenMVG_USE_INTERNAL_LEMON)
+ ${PROJECT_BINARY_DIR}/third_party/lemon)
+ set(LEMON_LIBRARY openMVG_lemon)
+ endif()
++endif()
++
++find_package(LEMON REQUIRED)
+
+ # ==============================================================================
+ # OpenCV
+@@ -372,20 +400,13 @@ endif()
+ # - only external and enabled only if OpenMVG_USE_OPENCV is set to ON
+ # ==============================================================================
+ if (OpenMVG_USE_OPENCV)
+- find_package( OpenCV QUIET )
+- if (NOT OpenCV_FOUND OR OpenCV_VERSION VERSION_LESS "3.0.0")
+- message(STATUS "OpenCV was not found (note that OpenCV version >= 3.0.0 is required). -> Disabling OpenCV support.")
+- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OPENCV OFF)
+- UPDATE_CACHE_VARIABLE(OpenMVG_USE_OCVSIFT OFF)
+- endif()
++ find_package( OpenCV REQUIRED )
+ endif()
+
+-
+ # ==============================================================================
+ # Third-party libraries:
+ # ==============================================================================
+ add_subdirectory(third_party)
+-add_subdirectory(testing)
+
+ # ==============================================================================
+ # openMVG modules
+@@ -472,67 +493,67 @@ message("** Use OpenCV SIFT features: " ${OpenMVG_USE_OCVSIFT})
+
+ message("\n")
+
+-if (DEFINED OpenMVG_USE_INTERNAL_CEREAL)
++if (OpenMVG_USE_INTERNAL_CEREAL)
+ message(STATUS "CEREAL: (internal)")
+ else()
+ message(STATUS "CEREAL: (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
++if (OpenMVG_USE_INTERNAL_EIGEN)
+ message(STATUS "EIGEN: " ${EIGEN_VERSION} " (internal)")
+ else()
+ message(STATUS "EIGEN: " ${EIGEN_VERSION} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_CERES)
++if (OpenMVG_USE_INTERNAL_CERES)
+ message(STATUS "CERES: " ${CERES_VERSION} " (internal)")
+ else()
+ message(STATUS "CERES: " ${CERES_VERSION} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_FLANN)
++if (OpenMVG_USE_INTERNAL_FLANN)
+ message(STATUS "FLANN: " ${FLANN_VERSION} " (internal)")
+ else()
+ message(STATUS "FLANN: " ${FLANN_VERSION} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_TIFF)
++if (OpenMVG_USE_INTERNAL_TIFF)
+ message(STATUS "LIBTIFF: " ${TIFF_VERSION_STRING} " (internal)")
+ else()
+ message(STATUS "LIBTIFF: " ${TIFF_VERSION_STRING} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_PNG)
++if (OpenMVG_USE_INTERNAL_PNG)
+ message(STATUS "LIBPNG: " ${PNG_VERSION_STRING} " (internal)")
+ else()
+ message(STATUS "LIBPNG: " ${PNG_VERSION_STRING} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_JPEG)
++if (OpenMVG_USE_INTERNAL_JPEG)
+ message(STATUS "LIBJPEG (internal)")
+ else()
+ message(STATUS "LIBJPEG (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_CLP)
++if (OpenMVG_USE_INTERNAL_CLP)
+ message(STATUS "CLP: " ${CLP_VERSION} " (internal)")
+ else()
+ message(STATUS "CLP: " ${CLP_VERSION} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_COINUTILS)
++if (OpenMVG_USE_INTERNAL_COINUTILS)
+ message(STATUS "COINUTILS: " ${COINUTILS_VERSION} " (internal)")
+ else()
+ message(STATUS "COINUTILS: " ${COINUTILS_VERSION} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_OSI)
++if (OpenMVG_USE_INTERNAL_OSI)
+ message(STATUS "OSI: " ${OSI_VERSION} " (internal)")
+ else()
+ message(STATUS "OSI: " ${OSI_VERSION} " (external)")
+ endif()
+
+-if (DEFINED OpenMVG_USE_INTERNAL_LEMON)
++if (OpenMVG_USE_INTERNAL_LEMON)
+ message(STATUS "LEMON: " ${LEMON_VERSION} " (internal)")
+ else()
+ message(STATUS "LEMON: " ${LEMON_VERSION} " (external)")
+diff --git a/src/cmakeFindModules/FindClp.cmake b/src/cmakeFindModules/FindClp.cmake
+index 8a69c23..6a81580 100644
+--- a/src/cmakeFindModules/FindClp.cmake
++++ b/src/cmakeFindModules/FindClp.cmake
+@@ -51,9 +51,8 @@ IF(EXISTS "${CLP_DIR}" AND NOT "${CLP_DIR}" STREQUAL "")
+ SET(CLP_INCLUDE_DIR ${CLP_DIR})
+
+ FIND_LIBRARY(CLP_LIBRARY NAMES Clp)
+- FIND_LIBRARY(CLPSOLVER_LIBRARY NAMES ClpSolver)
+- FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp)
+-
++ FIND_LIBRARY(CLPSOLVER_LIBRARY NAMES ClpSolver Clp)
++ FIND_LIBRARY(OSICLP_LIBRARY NAMES OsiClp Clp)
+ # locate Clp libraries
+ IF(DEFINED CLP_LIBRARY AND DEFINED CLPSOLVER_LIBRARY AND DEFINED OSICLP_LIBRARY)
+ SET(CLP_LIBRARIES ${CLP_LIBRARY} ${CLPSOLVER_LIBRARY} ${OSICLP_LIBRARY})
+diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in
+index e7dfbfd..c01910d 100644
+--- a/src/cmakeFindModules/OpenMVGConfig.cmake.in
++++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in
+@@ -19,7 +19,7 @@
+ # OPENMVG_VERSION: Version of OpenMVG found.
+ #
+
+-# Called if we failed to find OpenMVG or any of it's required dependencies,
++# Called if we failed to find OpenMVG or any of its required dependencies,
+ # unsets all public (designed to be used externally) variables and reports
+ # error message at priority depending upon [REQUIRED/QUIET/<NONE>] argument.
+ macro(OPENMVG_REPORT_NOT_FOUND REASON_MSG)
+@@ -59,9 +59,19 @@ set(CALLERS_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
+ # script.
+ set(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR})
+
++include(CMakeFindDependencyMacro)
++find_dependency(CoinUtils)
++find_dependency(Clp)
++find_dependency(Osi)
++find_dependency(flann)
++find_dependency(Threads)
++find_dependency(cereal)
++find_dependency(Ceres)
++find_dependency(vlfeat)
++
+ # Build the absolute root install directory as a relative path
+ get_filename_component(CURRENT_ROOT_INSTALL_DIR
+- ${CMAKE_MODULE_PATH}/../../../ ABSOLUTE)
++ ${CMAKE_MODULE_PATH}/../../ ABSOLUTE)
+ if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
+ OPENMVG_REPORT_NOT_FOUND(
+ "OpenMVG install root: ${CURRENT_ROOT_INSTALL_DIR}, "
+diff --git a/src/nonFree/sift/CMakeLists.txt b/src/nonFree/sift/CMakeLists.txt
+index 402a2d8..60ddc11 100644
+--- a/src/nonFree/sift/CMakeLists.txt
++++ b/src/nonFree/sift/CMakeLists.txt
+@@ -1,36 +1,36 @@
+
+-# libs should be static
+-set(BUILD_SHARED_LIBS OFF)
+-
+-# use PIC code for link into shared lib
+-if(UNIX)
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+-endif(UNIX)
+-
+-if(NOT USE_SSE2)
+- add_definitions(-DVL_DISABLE_SSE2)
+-endif()
+-
+-add_definitions(-DVL_DISABLE_THREADS)
+-
+-include_directories(./vl)
+-set(FEATS
+- vl/generic.c
+- vl/imopv_sse2.c
+- vl/sift.c
+- vl/imopv.c
+- vl/mathop_sse2.c
+- vl/sift.c
+- vl/host.c
+- vl/mathop.c
+- vl/random.c)
+-set_source_files_properties(${FEATS} PROPERTIES LANGUAGE C)
+-add_library(vlsift ${FEATS})
+-install(TARGETS vlsift DESTINATION lib EXPORT openMVG-targets)
+-set_property(TARGET vlsift PROPERTY FOLDER OpenMVG/nonFree)
++## libs should be static
++#set(BUILD_SHARED_LIBS OFF)
++#
++## use PIC code for link into shared lib
++#if(UNIX)
++# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
++#endif(UNIX)
++#
++#if(NOT USE_SSE2)
++# add_definitions(-DVL_DISABLE_SSE2)
++#endif()
++#
++#add_definitions(-DVL_DISABLE_THREADS)
++#
++#include_directories(./vl)
++#set(FEATS
++# vl/generic.c
++# vl/imopv_sse2.c
++# vl/sift.c
++# vl/imopv.c
++# vl/mathop_sse2.c
++# vl/sift.c
++# vl/host.c
++# vl/mathop.c
++# vl/random.c)
++#set_source_files_properties(${FEATS} PROPERTIES LANGUAGE C)
++#add_library(vlsift ${FEATS})
++#install(TARGETS vlsift DESTINATION lib EXPORT openMVG-targets)
++#set_property(TARGET vlsift PROPERTY FOLDER OpenMVG/nonFree)
+ install(
+ DIRECTORY .
+ DESTINATION include/openMVG_dependencies/nonFree/sift
+ COMPONENT headers
+- FILES_MATCHING PATTERN "*.hpp" PATTERN "*.h"
++ FILES_MATCHING PATTERN "*.hpp"
+ )
+diff --git a/src/nonFree/sift/SIFT_describer.hpp b/src/nonFree/sift/SIFT_describer.hpp
+index cd800b0..20e9c8e 100644
+--- a/src/nonFree/sift/SIFT_describer.hpp
++++ b/src/nonFree/sift/SIFT_describer.hpp
+@@ -17,9 +17,7 @@
+ #include <iostream>
+ #include <numeric>
+
+-extern "C" {
+-#include "nonFree/sift/vl/sift.h"
+-}
++#include <sift.h>
+
+ namespace openMVG {
+ namespace features {
+@@ -174,7 +172,7 @@ public:
+ const int nkeys = vl_sift_get_nkeypoints(filt);
+
+ // Update gradient before launching parallel extraction
+- vl_sift_update_gradient(filt);
++ update_gradient(filt);
+
+ #ifdef OPENMVG_USE_OPENMP
+ #pragma omp parallel for private(descr, descriptor)
+diff --git a/src/openMVG/linearProgramming/CMakeLists.txt b/src/openMVG/linearProgramming/CMakeLists.txt
+index cc5212f..acc57dd 100644
+--- a/src/openMVG/linearProgramming/CMakeLists.txt
++++ b/src/openMVG/linearProgramming/CMakeLists.txt
+@@ -15,16 +15,12 @@ target_link_libraries(openMVG_linearProgramming
+ PUBLIC
+ openMVG_numeric
+ PRIVATE
+- ${CLP_LIBRARIES} # clp + solver wrapper
+- ${COINUTILS_LIBRARY} # container tools
+- ${OSI_LIBRARY} # generic LP
++ Coin::Clp # clp + solver wrapper
++ Coin::CoinUtils # container tools
++ Coin::Osi # generic LP
+ )
+
+ target_include_directories(openMVG_linearProgramming
+- PRIVATE
+- ${CLP_INCLUDE_DIRS}
+- ${COINUTILS_INCLUDE_DIRS}
+- ${OSI_INCLUDE_DIRS}
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ )
+diff --git a/src/openMVG/matching/CMakeLists.txt b/src/openMVG/matching/CMakeLists.txt
+index 5fcd972..b21ea7b 100644
+--- a/src/openMVG/matching/CMakeLists.txt
++++ b/src/openMVG/matching/CMakeLists.txt
+@@ -18,6 +18,7 @@ list(REMOVE_ITEM matching_files_cpp ${REMOVEFILESUNITTEST})
+
+ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
++find_package(flann REQUIRED)
+
+ set_source_files_properties(${matching_files_cpp} PROPERTIES LANGUAGE CXX)
+ add_library(openMVG_matching
+@@ -39,10 +40,10 @@ target_link_libraries(openMVG_matching
+ Threads::Threads
+ cereal
+ )
+-if (NOT DEFINED OpenMVG_USE_INTERNAL_FLANN)
++if (NOT OpenMVG_USE_INTERNAL_FLANN)
+ target_link_libraries(openMVG_matching
+ PUBLIC
+- ${FLANN_LIBRARIES}
++ flann::flann
+ )
+ endif()
+ set_target_properties(openMVG_matching PROPERTIES SOVERSION ${OPENMVG_VERSION_MAJOR} VERSION "${OPENMVG_VERSION_MAJOR}.${OPENMVG_VERSION_MINOR}")
+diff --git a/src/openMVG/numeric/CMakeLists.txt b/src/openMVG/numeric/CMakeLists.txt
+index 06baee7..47255be 100644
+--- a/src/openMVG/numeric/CMakeLists.txt
++++ b/src/openMVG/numeric/CMakeLists.txt
+@@ -24,7 +24,7 @@ target_include_directories(openMVG_numeric
+ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:include>
+ )
+-if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
++if (OpenMVG_USE_INTERNAL_EIGEN)
+ target_include_directories(openMVG_numeric PUBLIC
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen/>)
+ else()
+diff --git a/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt b/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt
+index 862ffc7..326fc9a 100644
+--- a/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt
++++ b/src/openMVG_Samples/describe_and_match_GUI/CMakeLists.txt
+@@ -18,7 +18,7 @@ if (OpenMVG_BUILD_GUI_SOFTWARES)
+ add_executable( openMVG_sample_describe_and_match_GUI WIN32 ${FEATURES_PAIR_DEMO_SRCS} ${FEATURES_PAIR_DEMO_HDRS} )
+ endif( APPLE )
+
+- target_link_libraries( openMVG_sample_describe_and_match_GUI Qt5::Widgets openMVG_features openMVG_image openMVG_matching vlsift )
++ target_link_libraries( openMVG_sample_describe_and_match_GUI Qt5::Widgets openMVG_features openMVG_image openMVG_matching unofficial::vlfeat::vl )
+
+ set_target_properties( openMVG_sample_describe_and_match_GUI PROPERTIES CXX_STANDARD 11)
+
+diff --git a/src/openMVG_Samples/features_image_matching/CMakeLists.txt b/src/openMVG_Samples/features_image_matching/CMakeLists.txt
+index 18fb385..d44ffce 100644
+--- a/src/openMVG_Samples/features_image_matching/CMakeLists.txt
++++ b/src/openMVG_Samples/features_image_matching/CMakeLists.txt
+@@ -5,7 +5,7 @@ target_link_libraries(openMVG_sample_image_matching
+ openMVG_features
+ openMVG_matching
+ ${STLPLUS_LIBRARY}
+- vlsift)
++ unofficial::vlfeat::vl)
+ target_compile_definitions(openMVG_sample_image_matching
+ PRIVATE -DTHIS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
+
+diff --git a/src/openMVG_Samples/features_repeatability/CMakeLists.txt b/src/openMVG_Samples/features_repeatability/CMakeLists.txt
+index fd2b7c6..91f2766 100644
+--- a/src/openMVG_Samples/features_repeatability/CMakeLists.txt
++++ b/src/openMVG_Samples/features_repeatability/CMakeLists.txt
+@@ -6,7 +6,7 @@ target_link_libraries(openMVG_sample_main_features_repeatability_dataset
+ openMVG_matching
+ openMVG_system
+ openMVG_multiview
+- vlsift
++ unofficial::vlfeat::vl
+ ${STLPLUS_LIBRARY})
+
+ set_property(TARGET openMVG_sample_main_features_repeatability_dataset PROPERTY FOLDER OpenMVG/Samples)
+diff --git a/src/software/Localization/CMakeLists.txt b/src/software/Localization/CMakeLists.txt
+index 2f60393..0d57d0a 100644
+--- a/src/software/Localization/CMakeLists.txt
++++ b/src/software/Localization/CMakeLists.txt
+@@ -11,7 +11,7 @@ target_link_libraries(openMVG_main_SfM_Localization
+ openMVG_sfm
+ openMVG_exif
+ ${STLPLUS_LIBRARY}
+- vlsift
++ unofficial::vlfeat::vl
+ )
+
+ # Installation rules
+diff --git a/src/software/SfM/CMakeLists.txt b/src/software/SfM/CMakeLists.txt
+index 013a6c8..f38daa9 100644
+--- a/src/software/SfM/CMakeLists.txt
++++ b/src/software/SfM/CMakeLists.txt
+@@ -44,7 +44,7 @@ target_link_libraries(openMVG_main_ComputeFeatures
+ openMVG_multiview
+ openMVG_sfm
+ ${STLPLUS_LIBRARY}
+- vlsift
++ unofficial::vlfeat::vl
+ )
+ if (MSVC)
+ set_target_properties(openMVG_main_ComputeFeatures PROPERTIES COMPILE_FLAGS "/bigobj")
+@@ -235,7 +235,7 @@ if(OpenMVG_USE_OPENCV)
+ openMVG_multiview
+ openMVG_sfm
+ ${STLPLUS_LIBRARY}
+- vlsift
++ unofficial::vlfeat::vl
+ ${OpenCV_LIBS})
+ target_include_directories(openMVG_main_ComputeFeatures_OpenCV PRIVATE ${OpenCV_INCLUDE_DIRS})
+
+diff --git a/src/software/SfM/SfM_GlobalPipeline.py.in b/src/software/SfM/SfM_GlobalPipeline.py.in
+index 42405a4..28b0246 100644
+--- a/src/software/SfM/SfM_GlobalPipeline.py.in
++++ b/src/software/SfM/SfM_GlobalPipeline.py.in
+@@ -21,7 +21,7 @@
+ OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@"
+
+ # Indicate the openMVG camera sensor width directory
+-CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database"
++CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_CAMERA_SENSOR_WIDTH_DIRECTORY@"
+
+ import os
+ import subprocess
+@@ -77,5 +77,3 @@ pRecons.wait()
+
+ pRecons = subprocess.Popen( [os.path.join(OPENMVG_SFM_BIN, "openMVG_main_ComputeSfM_DataColor"), "-i", reconstruction_dir+"/robust.bin", "-o", os.path.join(reconstruction_dir,"robust_colorized.ply")] )
+ pRecons.wait()
+-
+-
+diff --git a/src/software/SfM/SfM_SequentialPipeline.py.in b/src/software/SfM/SfM_SequentialPipeline.py.in
+index 9a5a482..e804a19 100644
+--- a/src/software/SfM/SfM_SequentialPipeline.py.in
++++ b/src/software/SfM/SfM_SequentialPipeline.py.in
+@@ -21,7 +21,7 @@
+ OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@"
+
+ # Indicate the openMVG camera sensor width directory
+-CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database"
++CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_CAMERA_SENSOR_WIDTH_DIRECTORY@"
+
+ import os
+ import subprocess
+@@ -77,5 +77,3 @@ pRecons.wait()
+
+ pRecons = subprocess.Popen( [os.path.join(OPENMVG_SFM_BIN, "openMVG_main_ComputeSfM_DataColor"), "-i", reconstruction_dir+"/robust.bin", "-o", os.path.join(reconstruction_dir,"robust_colorized.ply")] )
+ pRecons.wait()
+-
+-
+diff --git a/src/software/SfM/tutorial_demo.py.in b/src/software/SfM/tutorial_demo.py.in
+index 259e24e..1097062 100644
+--- a/src/software/SfM/tutorial_demo.py.in
++++ b/src/software/SfM/tutorial_demo.py.in
+@@ -12,7 +12,7 @@
+ OPENMVG_SFM_BIN = "@OPENMVG_SOFTWARE_SFM_BUILD_DIR@"
+
+ # Indicate the openMVG camera sensor width directory
+-CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_SOFTWARE_SFM_SRC_DIR@" + "/../../openMVG/exif/sensor_width_database"
++CAMERA_SENSOR_WIDTH_DIRECTORY = "@OPENMVG_CAMERA_SENSOR_WIDTH_DIRECTORY@"
+
+ import os
+ import subprocess
+@@ -89,5 +89,3 @@ pRecons.wait()
+ print ("4. Structure from Known Poses (robust triangulation)")
+ pRecons = subprocess.Popen( [os.path.join(OPENMVG_SFM_BIN, "openMVG_main_ComputeStructureFromKnownPoses"), "-i", reconstruction_dir+"/sfm_data.bin", "-m", matches_dir, "-o", os.path.join(reconstruction_dir,"robust.ply")] )
+ pRecons.wait()
+-
+-
+diff --git a/src/software/VO/Tracker_opencv_klt.hpp b/src/software/VO/Tracker_opencv_klt.hpp
+index aa7dffe..2c4d237 100644
+--- a/src/software/VO/Tracker_opencv_klt.hpp
++++ b/src/software/VO/Tracker_opencv_klt.hpp
+@@ -80,7 +80,7 @@ struct Tracker_opencv_KLT : public Abstract_Tracker
+ std::vector<cv::KeyPoint> m_nextKeypoints;
+
+ cv::Ptr<cv::FeatureDetector> m_detector = cv::GFTTDetector::create(count);
+- if (m_detector == NULL)
++ if (m_detector == nullptr)
+ return false;
+
+ m_detector->detect(current_img, m_nextKeypoints);
+diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt
+index 816a941..f0b7145 100644
+--- a/src/third_party/CMakeLists.txt
++++ b/src/third_party/CMakeLists.txt
+@@ -18,7 +18,7 @@ add_subdirectory(stlplus3)
+ set(STLPLUS_LIBRARY openMVG_stlplus PARENT_SCOPE)
+
+ # Add graph library
+-if(DEFINED OpenMVG_USE_INTERNAL_LEMON)
++if(OpenMVG_USE_INTERNAL_LEMON)
+ add_subdirectory(lemon)
+ set_property(TARGET openMVG_lemon PROPERTY FOLDER OpenMVG/3rdParty/lemon)
+ set_property(TARGET check PROPERTY FOLDER OpenMVG/3rdParty/lemon)
+@@ -68,7 +68,7 @@ endif (NOT TIFF_FOUND)
+ add_subdirectory(vectorGraphics)
+
+ # Add ceres-solver (A Nonlinear Least Squares Minimizer)
+-if (DEFINED OpenMVG_USE_INTERNAL_CERES)
++if (OpenMVG_USE_INTERNAL_CERES)
+ add_subdirectory(cxsparse)
+ add_subdirectory(ceres-solver)
+ set_property(TARGET openMVG_cxsparse PROPERTY FOLDER OpenMVG/3rdParty/ceres)
+@@ -76,7 +76,7 @@ if (DEFINED OpenMVG_USE_INTERNAL_CERES)
+ endif()
+
+ # Add an Approximate Nearest Neighbor library
+-if (DEFINED OpenMVG_USE_INTERNAL_FLANN)
++if (OpenMVG_USE_INTERNAL_FLANN)
+ set(FLANN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/flann/src/cpp)
+ add_subdirectory(flann)
+ endif()
+@@ -90,7 +90,7 @@ add_subdirectory(fast)
+ ##
+ # Install Header only libraries if necessary
+ ##
+-if (DEFINED OpenMVG_USE_INTERNAL_EIGEN)
++if (OpenMVG_USE_INTERNAL_EIGEN)
+ #Configure Eigen install
+ set(EIGEN_INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/openMVG/third_party/eigen)
+ add_subdirectory(eigen)
diff --git a/ports/openmvg/fix-config-cmake.patch b/ports/openmvg/fix-config-cmake.patch
deleted file mode 100644
index f229502ce..000000000
--- a/ports/openmvg/fix-config-cmake.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/cmakeFindModules/OpenMVGConfig.cmake.in b/src/cmakeFindModules/OpenMVGConfig.cmake.in
-index e7dfbfd..357a25c 100644
---- a/src/cmakeFindModules/OpenMVGConfig.cmake.in
-+++ b/src/cmakeFindModules/OpenMVGConfig.cmake.in
-@@ -61,7 +61,7 @@ set(CMAKE_MODULE_PATH ${CURRENT_CONFIG_INSTALL_DIR})
-
- # Build the absolute root install directory as a relative path
- get_filename_component(CURRENT_ROOT_INSTALL_DIR
-- ${CMAKE_MODULE_PATH}/../../../ ABSOLUTE)
-+ ${CMAKE_MODULE_PATH}/../../ ABSOLUTE)
- if (NOT EXISTS ${CURRENT_ROOT_INSTALL_DIR})
- OPENMVG_REPORT_NOT_FOUND(
- "OpenMVG install root: ${CURRENT_ROOT_INSTALL_DIR}, "
diff --git a/ports/openmvg/portfile.cmake b/ports/openmvg/portfile.cmake
index c62ceaa4d..0b3265d6a 100644
--- a/ports/openmvg/portfile.cmake
+++ b/ports/openmvg/portfile.cmake
@@ -3,22 +3,33 @@ vcpkg_buildpath_length_warning(37)
#the port produces some empty dlls when building shared libraries, since some components do not export anything, breaking the internal build itself
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
+if("software" IN_LIST FEATURES AND VCPKG_CRT_LINKAGE STREQUAL static)
+ message(FATAL_ERROR "OpenMVG software currently cannot be built with static CRT linking. Please open an issue if you require this feature.")
+endif()
+
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO openMVG/openMVG
REF 606d1c9e82123dd50de282128151a50bf42262fc # v1.5
SHA512 eddcf4c5f86541112840a6d89bbf360d30b085c2b3ff3e39b357030a465163b465e89d01474f8dbd65b66f8bccfc1f54a58963324f622482e2960f00214b2b75
PATCHES
- fixcmake.patch
- fix-config-cmake.patch
+ build_fixes.patch
)
+set(OpenMVG_USE_OPENMP OFF)
+if("openmp" IN_LIST FEATURES)
+ if(VCPKG_TARGET_IS_WINDOWS)
+ message(WARNING "OpenMP feature is broken on Windows, disabled until fixed https://github.com/openMVG/openMVG/issues/1765")
+ else()
+ set(OpenMVG_USE_OPENMP ON)
+ endif()
+endif()
+
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
- openmp OpenMVG_USE_OPENMP
- openmp ENABLE_OPENMP
opencv OpenMVG_USE_OPENCV
opencv OpenMVG_USE_OCVSIFT
- opencv ENABLE_OPENCV
+ software OpenMVG_BUILD_SOFTWARES
+ software OpenMVG_BUILD_GUI_SOFTWARES
)
# remove some deps to prevent conflict
@@ -44,13 +55,12 @@ vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}/src
PREFER_NINJA
OPTIONS ${FEATURE_OPTIONS}
+ -DOpenMVG_USE_OPENMP=${OpenMVG_USE_OPENMP}
-DOpenMVG_BUILD_SHARED=OFF
-DOpenMVG_BUILD_TESTS=OFF
-DOpenMVG_BUILD_DOC=OFF
-DOpenMVG_BUILD_EXAMPLES=OFF
-DOpenMVG_BUILD_OPENGL_EXAMPLES=OFF
- -DOpenMVG_BUILD_SOFTWARES=OFF
- -DOpenMVG_BUILD_GUI_SOFTWARES=OFF
-DOpenMVG_BUILD_COVERAGE=OFF
-DOpenMVG_USE_INTERNAL_CLP=OFF
-DOpenMVG_USE_INTERNAL_COINUTILS=OFF
@@ -64,28 +74,102 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH share/openMVG/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
-#remove extra deprecated cmake target files left in unappropriate folders
-file(GLOB REMOVE_CMAKE ${CURRENT_PACKAGES_DIR}/lib/*.cmake)
-file(REMOVE_RECURSE ${REMOVE_CMAKE})
-file(GLOB REMOVE_CMAKE ${CURRENT_PACKAGES_DIR}/debug/lib/*.cmake)
-file(REMOVE_RECURSE ${REMOVE_CMAKE})
+if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/openMVG/image/image_test
- ${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data)
+ ${CURRENT_PACKAGES_DIR}/include/openMVG/exif/image_data
+ ${CURRENT_PACKAGES_DIR}/include/openMVG_dependencies/nonFree/sift/vl)
if(OpenMVG_BUILD_SHARED)
- # release
- file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/lib/*.dll)
- file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
- file(REMOVE_RECURSE ${DLL_FILES})
- # debug
- file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
- file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
- file(REMOVE_RECURSE ${DLL_FILES})
+ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
+ # release
+ file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/lib/*.dll)
+ file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE_RECURSE ${DLL_FILES})
+ endif()
+ if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
+ # debug
+ file(GLOB DLL_FILES ${CURRENT_PACKAGES_DIR}/debug/lib/*.dll)
+ file(COPY ${DLL_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE_RECURSE ${DLL_FILES})
+ endif()
endif()
vcpkg_copy_pdbs()
+if("software" IN_LIST FEATURES)
+ if(VCPKG_TARGET_IS_OSX)
+ vcpkg_copy_tools(TOOL_NAMES
+ openMVG_main_AlternativeVO.app
+ ui_openMVG_MatchesViewer.app
+ )
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/openMVG_main_AlternativeVO.app)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin/ui_openMVG_MatchesViewer.app)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/openMVG_main_AlternativeVO.app)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/bin/ui_openMVG_MatchesViewer.app)
+ else()
+ vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
+ openMVG_main_AlternativeVO
+ ui_openMVG_MatchesViewer
+ )
+ endif()
+ vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
+ openMVG_main_ChangeLocalOrigin
+ openMVG_main_ColHarmonize
+ openMVG_main_ComputeClusters
+ openMVG_main_ComputeFeatures
+ openMVG_main_ComputeMatches
+ openMVG_main_ComputeSfM_DataColor
+ openMVG_main_ComputeStructureFromKnownPoses
+ openMVG_main_ConvertList
+ openMVG_main_ConvertSfM_DataFormat
+ openMVG_main_evalQuality
+ openMVG_main_ExportCameraFrustums
+ openMVG_main_exportKeypoints
+ openMVG_main_exportMatches
+ openMVG_main_exportTracks
+ openMVG_main_ExportUndistortedImages
+ openMVG_main_FrustumFiltering
+ openMVG_main_geodesy_registration_to_gps_position
+ openMVG_main_GlobalSfM
+ openMVG_main_IncrementalSfM
+ openMVG_main_IncrementalSfM2
+ openMVG_main_ListMatchingPairs
+ openMVG_main_MatchesToTracks
+ openMVG_main_openMVG2Agisoft
+ openMVG_main_openMVG2CMPMVS
+ openMVG_main_openMVG2Colmap
+ openMVG_main_openMVG2MESHLAB
+ openMVG_main_openMVG2MVE2
+ openMVG_main_openMVG2MVSTEXTURING
+ openMVG_main_openMVG2NVM
+ openMVG_main_openMVG2openMVS
+ openMVG_main_openMVG2PMVS
+ openMVG_main_openMVG2WebGL
+ openMVG_main_openMVGSpherical2Cubic
+ openMVG_main_PointsFiltering
+ openMVG_main_SfMInit_ImageListing
+ openMVG_main_SfMInit_ImageListingFromKnownPoses
+ openMVG_main_SfM_Localization
+ openMVG_main_SplitMatchFileIntoMatchFiles
+ ui_openMVG_control_points_registration
+ )
+ if("opencv" IN_LIST FEATURES)
+ vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
+ openMVG_main_ComputeFeatures_OpenCV
+ )
+ endif()
+
+ file(COPY ${SOURCE_PATH}/src/openMVG/exif/sensor_width_database/sensor_width_camera_database.txt DESTINATION ${CURRENT_PACKAGES_DIR}/tools/${PORT})
+ set(OPENMVG_SOFTWARE_SFM_BUILD_DIR ${CURRENT_INSTALLED_DIR}/tools/${PORT})
+ set(OPENMVG_CAMERA_SENSOR_WIDTH_DIRECTORY ${CURRENT_INSTALLED_DIR}/tools/${PORT})
+ configure_file("${SOURCE_PATH}/src/software/SfM/tutorial_demo.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/tutorial_demo.py" @ONLY)
+ configure_file("${SOURCE_PATH}/src/software/SfM/SfM_GlobalPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_GlobalPipeline.py" @ONLY)
+ configure_file("${SOURCE_PATH}/src/software/SfM/SfM_SequentialPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/SfM_SequentialPipeline.py" @ONLY)
+ message(STATUS "To use tools, you need graphviz installed and manually added to path (to have neato executable)")
+endif()
+
# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/openmvs/CONTROL b/ports/openmvs/CONTROL
index bc06aef4a..bf4f0f53c 100644
--- a/ports/openmvs/CONTROL
+++ b/ports/openmvs/CONTROL
@@ -1,5 +1,13 @@
Source: openmvs
-Version: 1.1-1
+Version: 1.1
+Port-Version: 2
Description: OpenMVS: open Multi-View Stereo reconstruction library
Homepage: https://cdcseacave.github.io/openMVS
-Build-Depends: zlib, boost-iostreams, boost-program-options, boost-system, boost-serialization, eigen3, ceres, opencv, cgal[core], glew, glfw3, vcglib
+Build-Depends: zlib, boost-iostreams, boost-program-options, boost-system, boost-serialization, eigen3, opencv, cgal[core], glew, glfw3, vcglib, openmvg[software] (!(windows&static)), libpng, tiff
+
+Feature: cuda
+Build-Depends: cuda
+Description: cuda support for openmvs
+
+Feature: openmp
+Description: openmp support for openmvs
diff --git a/ports/openmvs/fix-build.patch b/ports/openmvs/fix-build.patch
new file mode 100644
index 000000000..0cd759503
--- /dev/null
+++ b/ports/openmvs/fix-build.patch
@@ -0,0 +1,408 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7966ed5..4e0f673 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -63,7 +63,7 @@ INCLUDE_DIRECTORIES("${OpenMVS_SOURCE_DIR}")
+ SET(OpenMVS_EXTRA_LIBS "")
+ if(OpenMVS_USE_OPENMP)
+ SET(OpenMP_LIBS "")
+- FIND_PACKAGE(OpenMP)
++ FIND_PACKAGE(OpenMP REQUIRED)
+ if(OPENMP_FOUND)
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
+ ADD_DEFINITIONS(-D_USE_OPENMP)
+@@ -83,7 +83,7 @@ if(OpenMVS_USE_OPENGL)
+ if(POLICY CMP0072)
+ cmake_policy(SET CMP0072 NEW)
+ endif()
+- FIND_PACKAGE(OpenGL)
++ FIND_PACKAGE(OpenGL REQUIRED)
+ if(OPENGL_FOUND)
+ INCLUDE_DIRECTORIES(${OPENGL_INCLUDE_DIR})
+ ADD_DEFINITIONS(${OpenGL_DEFINITIONS} -D_USE_OPENGL)
+@@ -94,7 +94,7 @@ if(OpenMVS_USE_OPENGL)
+ endif()
+
+ if(OpenMVS_USE_CUDA)
+- FIND_PACKAGE(CUDA)
++ FIND_PACKAGE(CUDA REQUIRED)
+ if(CUDA_FOUND)
+ INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
+ ADD_DEFINITIONS(-D_USE_CUDA)
+@@ -108,7 +108,7 @@ else()
+ endif()
+
+ if(OpenMVS_USE_BREAKPAD)
+- FIND_PACKAGE(BREAKPAD)
++ FIND_PACKAGE(BREAKPAD REQUIRED)
+ if(BREAKPAD_FOUND)
+ INCLUDE_DIRECTORIES(${BREAKPAD_INCLUDE_DIRS})
+ ADD_DEFINITIONS(${BREAKPAD_DEFINITIONS} -D_USE_BREAKPAD)
+@@ -119,7 +119,7 @@ if(OpenMVS_USE_BREAKPAD)
+ endif()
+ endif()
+
+-FIND_PACKAGE(Boost ${SYSTEM_PACKAGE_REQUIRED} COMPONENTS iostreams program_options system serialization)
++FIND_PACKAGE(Boost COMPONENTS iostreams program_options system serialization REQUIRED)
+ if(Boost_FOUND)
+ INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+ ADD_DEFINITIONS(${Boost_DEFINITIONS} -D_USE_BOOST)
+@@ -127,14 +127,14 @@ if(Boost_FOUND)
+ SET(_USE_BOOST TRUE)
+ endif()
+
+-FIND_PACKAGE(Eigen ${SYSTEM_PACKAGE_REQUIRED})
+-if(EIGEN_FOUND)
+- INCLUDE_DIRECTORIES(${EIGEN_INCLUDE_DIRS})
+- ADD_DEFINITIONS(${EIGEN_DEFINITIONS} -D_USE_EIGEN)
++FIND_PACKAGE(Eigen3 REQUIRED)
++if(EIGEN3_FOUND)
++ INCLUDE_DIRECTORIES(${EIGEN3_INCLUDE_DIRS})
++ ADD_DEFINITIONS(${EIGEN3_DEFINITIONS} -D_USE_EIGEN)
+ SET(_USE_EIGEN TRUE)
+ endif()
+
+-FIND_PACKAGE(OpenCV ${SYSTEM_PACKAGE_REQUIRED})
++FIND_PACKAGE(OpenCV REQUIRED)
+ if(OpenCV_FOUND)
+ INCLUDE_DIRECTORIES(${OpenCV_INCLUDE_DIRS})
+ ADD_DEFINITIONS(${OpenCV_DEFINITIONS})
+@@ -170,7 +170,9 @@ ADD_DEFINITIONS(${OpenMVS_DEFINITIONS})
+
+ # Add modules
+ ADD_SUBDIRECTORY(libs)
++if(OpenMVS_BUILD_TOOLS)
+ ADD_SUBDIRECTORY(apps)
++endif()
+ ADD_SUBDIRECTORY(docs)
+
+ if(OpenMVS_USE_CERES)
+@@ -188,7 +190,7 @@ export(TARGETS Common IO Math MVS FILE "${PROJECT_BINARY_DIR}/OpenMVSTargets.cma
+ # Export the package for use from the build-tree
+ # (this registers the build-tree with a global CMake-registry)
+ export(PACKAGE OpenMVS)
+-
++
+ # Create the OpenMVSConfig.cmake and OpenMVSConfigVersion files
+ file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INSTALL_INCLUDE_DIR}")
+ # ... for the build tree
+@@ -199,7 +201,7 @@ set(CONF_INCLUDE_DIRS "${INSTALL_CMAKE_DIR}/${REL_INCLUDE_DIR}")
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/OpenMVSConfig.cmake.in" "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMVSConfig.cmake" @ONLY)
+ # ... for both
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/build/OpenMVSConfigVersion.cmake.in" "${PROJECT_BINARY_DIR}/OpenMVSConfigVersion.cmake" @ONLY)
+-
++
+ # Install the OpenMVSConfig.cmake and OpenMVSConfigVersion.cmake
+ install(FILES
+ "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/OpenMVSConfig.cmake"
+diff --git a/MvgMvsPipeline.py b/MvgMvsPipeline.py.in
+similarity index 97%
+rename from MvgMvsPipeline.py
+rename to MvgMvsPipeline.py.in
+index f4914bf..23d03e6 100644
+--- a/MvgMvsPipeline.py
++++ b/MvgMvsPipeline.py.in
+@@ -91,12 +91,12 @@ def find(afile):
+ return None
+
+ # Try to find openMVG and openMVS binaries in PATH
+-OPENMVG_BIN = whereis("openMVG_main_SfMInit_ImageListing")
+-OPENMVS_BIN = whereis("ReconstructMesh")
++OPENMVG_BIN = "@OPENMVG_TOOLS_PATH@"
++OPENMVS_BIN = "@OPENMVS_TOOLS_PATH@"
+
+ # Try to find openMVG camera sensor database
+-CAMERA_SENSOR_DB_FILE = "sensor_width_camera_database.txt"
+-CAMERA_SENSOR_DB_DIRECTORY = find(CAMERA_SENSOR_DB_FILE)
++CAMERA_SENSOR_DB_FILE = "@SENSOR_WIDTH_CAMERA_DATABASE_TXT_PATH@"
++CAMERA_SENSOR_DB_DIRECTORY = "@OPENMVG_TOOLS_PATH@"
+
+ # Ask user for openMVG and openMVS directories if not found
+ if not OPENMVG_BIN:
+@@ -175,10 +175,10 @@ class StepsStore:
+ ["-i", "%input_dir%", "-o", "%matches_dir%", "-d", "%camera_file_params%"]],
+ ["Compute features", # 1
+ os.path.join(OPENMVG_BIN, "openMVG_main_ComputeFeatures"),
+- ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-m", "SIFT", "-n", "4"]],
++ ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-m", "SIFT"]],
+ ["Compute matches", # 2
+ os.path.join(OPENMVG_BIN, "openMVG_main_ComputeMatches"),
+- ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-n", "HNSWL2", "-r", ".8"]],
++ ["-i", "%matches_dir%/sfm_data.json", "-o", "%matches_dir%", "-n", "AUTO", "-r", ".8"]],
+ ["Incremental reconstruction", # 3
+ os.path.join(OPENMVG_BIN, "openMVG_main_IncrementalSfM"),
+ ["-i", "%matches_dir%/sfm_data.json", "-m", "%matches_dir%", "-o", "%reconstruction_dir%"]],
+diff --git a/apps/Viewer/CMakeLists.txt b/apps/Viewer/CMakeLists.txt
+index c519040..934cd50 100644
+--- a/apps/Viewer/CMakeLists.txt
++++ b/apps/Viewer/CMakeLists.txt
+@@ -16,18 +16,6 @@ else()
+ MESSAGE("-- Can't find GLEW. Continuing without it.")
+ RETURN()
+ endif()
+-if(CMAKE_COMPILER_IS_GNUCXX)
+- FIND_PACKAGE(PkgConfig QUIET)
+- pkg_search_module(GLFW QUIET glfw3)
+- if(GLFW_FOUND)
+- INCLUDE_DIRECTORIES(${GLFW_INCLUDE_DIRS})
+- ADD_DEFINITIONS(${GLFW_DEFINITIONS})
+- MESSAGE(STATUS "GLFW3 ${GLFW_VERSION} found (include: ${GLFW_INCLUDE_DIRS})")
+- else()
+- MESSAGE("-- Can't find GLFW3. Continuing without it.")
+- RETURN()
+- endif()
+-else()
+ FIND_PACKAGE(glfw3 QUIET)
+ if(glfw3_FOUND)
+ INCLUDE_DIRECTORIES(${glfw3_INCLUDE_DIRS})
+@@ -37,7 +25,6 @@ else()
+ MESSAGE("-- Can't find GLFW3. Continuing without it.")
+ RETURN()
+ endif()
+-endif()
+
+ # List sources files
+ FILE(GLOB PCH_C "Common.cpp")
+diff --git a/build/OpenMVSConfig.cmake.in b/build/OpenMVSConfig.cmake.in
+index 96b8fe2..454e846 100644
+--- a/build/OpenMVSConfig.cmake.in
++++ b/build/OpenMVSConfig.cmake.in
+@@ -3,16 +3,70 @@
+ # OpenMVS_INCLUDE_DIRS - include directories for OpenMVS
+ # OpenMVS_LIBRARIES - libraries to link against
+ # OpenMVS_BINARIES - the binaries
+-
++
+ # Compute paths
+ get_filename_component(OpenMVS_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ set(OpenMVS_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@")
+-
++list(APPEND CMAKE_MODULE_PATH "${OpenMVS_CMAKE_DIR}")
++
++if (MSVC)
++ set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /GL")
++ set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
++ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
++ set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
++endif()
++
++set(CMAKE_CXX_STANDARD 14)
++set(CMAKE_CXX_STANDARD_REQUIRED ON)
++
++include(CMakeFindDependencyMacro)
++
++if(@OpenMVS_USE_OPENMP@)
++ find_dependency(OpenMP)
++ add_definitions(-D_USE_OPENMP)
++endif()
++
++if(@OpenMVS_USE_OPENGL@)
++ find_dependency(OpenGL)
++ add_definitions(${OpenGL_DEFINITIONS} -D_USE_OPENGL)
++endif()
++
++if(@OpenMVS_USE_CUDA@)
++ find_dependency(CUDA)
++ add_definitions(-D_USE_CUDA)
++ include_directories(${CUDA_INCLUDE_DIRS})
++endif()
++
++if(@OpenMVS_USE_BREAKPAD@)
++ find_dependency(BREAKPAD)
++ add_definitions(${BREAKPAD_DEFINITIONS} -D_USE_BREAKPAD)
++endif()
++
++find_dependency(Boost)
++add_definitions(${Boost_DEFINITIONS} -D_USE_BOOST)
++include_directories(${Boost_INCLUDE_DIRS})
++find_dependency(Eigen3)
++add_definitions(${EIGEN3_DEFINITIONS} -D_USE_EIGEN)
++find_dependency(OpenCV)
++add_definitions(${OpenCV_DEFINITIONS})
++find_dependency(CGAL)
++add_definitions(${CGAL_DEFINITIONS})
++
++find_dependency(VCG REQUIRED)
++add_definitions(${VCG_DEFINITIONS})
++
++if(@OpenMVS_USE_CERES@)
++ find_dependency(Ceres)
++ add_definitions(${CERES_DEFINITIONS})
++endif()
++
++add_definitions(@OpenMVS_DEFINITIONS@)
++
+ # Our library dependencies (contains definitions for IMPORTED targets)
+ if(NOT TARGET MVS AND NOT OpenMVS_BINARY_DIR)
+ include("${OpenMVS_CMAKE_DIR}/OpenMVSTargets.cmake")
+ endif()
+-
++
+ # These are IMPORTED targets created by OpenMVSTargets.cmake
+ set(OpenMVS_LIBRARIES MVS)
+ set(OpenMVS_BINARIES InterfaceVisualSFM DensifyPointCloud ReconstructMesh RefineMesh TextureMesh)
+diff --git a/build/Utils.cmake b/build/Utils.cmake
+index f41c9d8..31cd292 100644
+--- a/build/Utils.cmake
++++ b/build/Utils.cmake
+@@ -160,7 +160,7 @@ macro(GetOperatingSystemArchitectureBitness)
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES i686.*|i386.*|x86.*)
+ set(X86 1)
+ endif()
+-
++
+ if(NOT ${MY_VAR_PREFIX}_PACKAGE_REQUIRED)
+ set(${MY_VAR_PREFIX}_PACKAGE_REQUIRED "REQUIRED")
+ endif()
+@@ -173,30 +173,6 @@ macro(ComposePackageLibSuffix)
+ set(PACKAGE_LIB_SUFFIX "")
+ set(PACKAGE_LIB_SUFFIX_DBG "")
+ set(PACKAGE_LIB_SUFFIX_REL "")
+- if(MSVC)
+- if("${MSVC_VERSION}" STREQUAL "1921")
+- set(PACKAGE_LIB_SUFFIX "/vc16")
+- elseif("${MSVC_VERSION}" STREQUAL "1916")
+- set(PACKAGE_LIB_SUFFIX "/vc15")
+- elseif("${MSVC_VERSION}" STREQUAL "1900")
+- set(PACKAGE_LIB_SUFFIX "/vc14")
+- elseif("${MSVC_VERSION}" STREQUAL "1800")
+- set(PACKAGE_LIB_SUFFIX "/vc12")
+- elseif("${MSVC_VERSION}" STREQUAL "1700")
+- set(PACKAGE_LIB_SUFFIX "/vc11")
+- elseif("${MSVC_VERSION}" STREQUAL "1600")
+- set(PACKAGE_LIB_SUFFIX "/vc10")
+- elseif("${MSVC_VERSION}" STREQUAL "1500")
+- set(PACKAGE_LIB_SUFFIX "/vc9")
+- endif()
+- if("${SYSTEM_BITNESS}" STREQUAL "64")
+- set(PACKAGE_LIB_SUFFIX "${PACKAGE_LIB_SUFFIX}/x64")
+- else()
+- set(PACKAGE_LIB_SUFFIX "${PACKAGE_LIB_SUFFIX}/x86")
+- endif()
+- set(PACKAGE_LIB_SUFFIX_DBG "${PACKAGE_LIB_SUFFIX}/Debug")
+- set(PACKAGE_LIB_SUFFIX_REL "${PACKAGE_LIB_SUFFIX}/Release")
+- endif()
+ endmacro()
+
+
+@@ -511,7 +487,7 @@ macro(optimize_default_compiler_settings)
+ endif()
+ add_extra_compiler_option(-fdiagnostics-show-option)
+ add_extra_compiler_option(-ftemplate-backtrace-limit=0)
+-
++
+ # The -Wno-long-long is required in 64bit systems when including sytem headers.
+ if(X86_64)
+ add_extra_compiler_option(-Wno-long-long)
+@@ -817,7 +793,7 @@ macro(ConfigCompilerAndLinker)
+ else()
+ set(cxx_rtti_support "${cxx_no_rtti_flags}")
+ endif()
+-
++
+ SET(cxx_default "${cxx_exception_support} ${cxx_rtti_support}" CACHE PATH "Common compile CXX flags")
+ SET(c_default "${CMAKE_C_FLAGS} ${cxx_base_flags}" CACHE PATH "Common compile C flags")
+ endmacro()
+@@ -825,16 +801,12 @@ endmacro()
+ # Initialize variables needed for a library type project.
+ macro(ConfigLibrary)
+ # Offer the user the choice of overriding the installation directories
+- set(INSTALL_LIB_DIR "lib/${PROJECT_NAME}" CACHE PATH "Installation directory for libraries")
+- set(INSTALL_BIN_DIR "bin/${PROJECT_NAME}" CACHE PATH "Installation directory for executables")
+- set(INSTALL_INCLUDE_DIR "include/${PROJECT_NAME}" CACHE PATH "Installation directory for header files")
+- if(WIN32 AND NOT CYGWIN)
+- set(DEF_INSTALL_CMAKE_DIR "CMake")
+- else()
+- set(DEF_INSTALL_CMAKE_DIR "lib/CMake/${PROJECT_NAME}")
+- endif()
++ set(INSTALL_LIB_DIR "lib" CACHE PATH "Installation directory for libraries")
++ set(INSTALL_BIN_DIR "bin" CACHE PATH "Installation directory for executables")
++ set(INSTALL_INCLUDE_DIR "include/openmvs" CACHE PATH "Installation directory for header files")
++ set(DEF_INSTALL_CMAKE_DIR "share/openmvs")
+ set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+-
++
+ # Make relative paths absolute (needed later on)
+ foreach(p LIB BIN INCLUDE CMAKE)
+ set(var INSTALL_${p}_DIR)
+diff --git a/libs/Common/CMakeLists.txt b/libs/Common/CMakeLists.txt
+index 2e6c1a4..6e1fa95 100644
+--- a/libs/Common/CMakeLists.txt
++++ b/libs/Common/CMakeLists.txt
+@@ -18,6 +18,7 @@ set_target_pch(Common Common.h)
+
+ # Link its dependencies
+ TARGET_LINK_LIBRARIES(Common ${Boost_LIBRARIES} ${OpenCV_LIBS})
++TARGET_INCLUDE_DIRECTORIES(Common PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
+
+ # Install
+ SET_TARGET_PROPERTIES(Common PROPERTIES
+diff --git a/libs/IO/CMakeLists.txt b/libs/IO/CMakeLists.txt
+index a354376..4fd478c 100644
+--- a/libs/IO/CMakeLists.txt
++++ b/libs/IO/CMakeLists.txt
+@@ -43,7 +43,8 @@ cxx_library_with_type_no_pch(IO "Libs" "STATIC" "${cxx_default}"
+ set_target_pch(IO Common.h)
+
+ # Link its dependencies
+-TARGET_LINK_LIBRARIES(IO Common ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${TIFF_LIBRARIES} ${EXIV2_LIBS})
++TARGET_LINK_LIBRARIES(IO Common ${TIFF_LIBRARIES} ${PNG_LIBRARIES} ${JPEG_LIBRARIES} ${EXIV2_LIBS})
++TARGET_INCLUDE_DIRECTORIES(IO PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
+
+ # Install
+ SET_TARGET_PROPERTIES(IO PROPERTIES
+diff --git a/libs/MVS/CMakeLists.txt b/libs/MVS/CMakeLists.txt
+index 14be620..867cfd5 100644
+--- a/libs/MVS/CMakeLists.txt
++++ b/libs/MVS/CMakeLists.txt
+@@ -1,12 +1,12 @@
+ # Find required packages
+-FIND_PACKAGE(CGAL ${SYSTEM_PACKAGE_REQUIRED})
++FIND_PACKAGE(CGAL REQUIRED)
+ if(CGAL_FOUND)
+ include_directories(${CGAL_INCLUDE_DIRS})
+ add_definitions(${CGAL_DEFINITIONS})
+ link_directories(${CGAL_LIBRARY_DIRS})
+ endif()
+
+-FIND_PACKAGE(VCG ${SYSTEM_PACKAGE_REQUIRED})
++FIND_PACKAGE(VCG REQUIRED)
+ if(VCG_FOUND)
+ include_directories(${VCG_INCLUDE_DIRS})
+ add_definitions(${VCG_DEFINITIONS})
+@@ -14,12 +14,10 @@ endif()
+
+ set(CERES_LIBS "")
+ if(OpenMVS_USE_CERES)
+- FIND_PACKAGE(CERES)
++ FIND_PACKAGE(Ceres REQUIRED)
+ if(CERES_FOUND)
+ include_directories(${CERES_INCLUDE_DIRS})
+ add_definitions(${CERES_DEFINITIONS})
+- else()
+- set(OpenMVS_USE_CERES OFF)
+ endif()
+ endif()
+
+@@ -42,7 +40,8 @@ cxx_library_with_type_no_pch(MVS "Libs" "" "${cxx_default}"
+ set_target_pch(MVS Common.h)
+
+ # Link its dependencies
+-TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO ${CERES_LIBS} ${CGAL_LIBS} ${CUDA_CUDA_LIBRARY})
++TARGET_LINK_LIBRARIES(MVS PRIVATE Common Math IO ${CERES_LIBS} CGAL::CGAL ${CUDA_CUDA_LIBRARY})
++TARGET_INCLUDE_DIRECTORIES(MVS PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
+
+ # Install
+ SET_TARGET_PROPERTIES(MVS PROPERTIES
+diff --git a/libs/Math/CMakeLists.txt b/libs/Math/CMakeLists.txt
+index d592bd0..f1fe4c6 100644
+--- a/libs/Math/CMakeLists.txt
++++ b/libs/Math/CMakeLists.txt
+@@ -35,6 +35,7 @@ set_target_pch(Math Common.h)
+
+ # Link its dependencies
+ TARGET_LINK_LIBRARIES(Math Common)
++TARGET_INCLUDE_DIRECTORIES(Math PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>)
+
+ # Install
+ INSTALL(FILES ${LIBRARY_FILES_H} DESTINATION "${INSTALL_INCLUDE_DIR}/Math" COMPONENT dev)
diff --git a/ports/openmvs/portfile.cmake b/ports/openmvs/portfile.cmake
index e0a771751..2ec1bd094 100644
--- a/ports/openmvs/portfile.cmake
+++ b/ports/openmvs/portfile.cmake
@@ -6,17 +6,35 @@ vcpkg_from_github(
REF v1.1
SHA512 baa9149853dc08c602deeb1a04cf57643d1cb0733aee2776f4e99b210279aad3b4a1013ab1d790e91a3a95b7c72b9c12c6be25f2c30a76b69b5319b610cb8e7a
HEAD_REF master
+ PATCHES
+ fix-build.patch
)
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ cuda OpenMVS_USE_CUDA
+ openmp OpenMVS_USE_OPENMP
+)
+
+file(REMOVE "${SOURCE_PATH}/build/Modules/FindCERES.cmake")
+file(REMOVE "${SOURCE_PATH}/build/Modules/FindCGAL.cmake")
+file(REMOVE "${SOURCE_PATH}/build/Modules/FindEIGEN.cmake")
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
- OPTIONS
+ OPTIONS ${FEATURE_OPTIONS}
+ -DOpenMVS_USE_NONFREE=ON
+ -DOpenMVS_USE_CERES=OFF
+ -DOpenMVS_USE_FAST_FLOAT2INT=ON
+ -DOpenMVS_USE_FAST_INVSQRT=OFF
+ -DOpenMVS_USE_FAST_CBRT=ON
+ -DOpenMVS_USE_SSE=ON
+ -DOpenMVS_USE_OPENGL=ON
-DOpenMVS_USE_BREAKPAD=OFF
- -DOpenMVS_USE_CUDA=OFF
- -DINSTALL_CMAKE_DIR:STRING=share/openmvs
- -DINSTALL_BIN_DIR:STRING=bin
- -DINSTALL_LIB_DIR:STRING=lib
+ OPTIONS_RELEASE
+ -DOpenMVS_BUILD_TOOLS=ON
+ OPTIONS_DEBUG
+ -DOpenMVS_BUILD_TOOLS=OFF
)
vcpkg_install_cmake()
@@ -24,10 +42,30 @@ vcpkg_install_cmake()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
vcpkg_fixup_cmake_targets()
+file(READ ${CURRENT_PACKAGES_DIR}/share/openmvs/OpenMVSTargets-release.cmake TARGETS_CMAKE)
+string(REPLACE "bin/InterfaceCOLMAP" "tools/openmvs/InterfaceCOLMAP" TARGETS_CMAKE "${TARGETS_CMAKE}")
+string(REPLACE "bin/InterfaceVisualSFM" "tools/openmvs/InterfaceVisualSFM" TARGETS_CMAKE "${TARGETS_CMAKE}")
+string(REPLACE "bin/DensifyPointCloud" "tools/openmvs/DensifyPointCloud" TARGETS_CMAKE "${TARGETS_CMAKE}")
+string(REPLACE "bin/ReconstructMesh" "tools/openmvs/ReconstructMesh" TARGETS_CMAKE "${TARGETS_CMAKE}")
+string(REPLACE "bin/RefineMesh" "tools/openmvs/RefineMesh" TARGETS_CMAKE "${TARGETS_CMAKE}")
+string(REPLACE "bin/TextureMesh" "tools/openmvs/TextureMesh" TARGETS_CMAKE "${TARGETS_CMAKE}")
+string(REPLACE "bin/Viewer" "tools/openmvs/Viewer" TARGETS_CMAKE "${TARGETS_CMAKE}")
+file(WRITE ${CURRENT_PACKAGES_DIR}/share/openmvs/OpenMVSTargets-release.cmake "${TARGETS_CMAKE}")
+
+vcpkg_copy_tools(AUTO_CLEAN TOOL_NAMES
+ DensifyPointCloud
+ InterfaceCOLMAP
+ InterfaceVisualSFM
+ ReconstructMesh
+ RefineMesh
+ TextureMesh
+ Viewer
+)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools)
-file(RENAME ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/tools/openmvs)
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/openmvs)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
+set(OPENMVG_TOOLS_PATH "${CURRENT_INSTALLED_DIR}/tools/openmvg")
+set(OPENMVS_TOOLS_PATH "${CURRENT_INSTALLED_DIR}/tools/${PORT}")
+set(SENSOR_WIDTH_CAMERA_DATABASE_TXT_PATH "${OPENMVG_TOOLS_PATH}/sensor_width_camera_database.txt")
+configure_file("${SOURCE_PATH}/MvgMvsPipeline.py.in" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/MvgMvsPipeline.py" @ONLY)
+file(INSTALL "${SOURCE_PATH}/build/Modules/FindVCG.cmake" DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/openssl-unix/CMakeLists.txt b/ports/openssl-unix/CMakeLists.txt
index a763a8749..7e09222c9 100644
--- a/ports/openssl-unix/CMakeLists.txt
+++ b/ports/openssl-unix/CMakeLists.txt
@@ -11,6 +11,19 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Android" OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
else()
set(PLATFORM linux-generic32)
endif()
+elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS")
+ if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm64")
+ set(PLATFORM ios64-xcrun)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
+ set(PLATFORM ios-xcrun)
+ elseif(VCPKG_TARGET_ARCHITECTURE MATCHES "x86" OR
+ VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
+ set(PLATFORM iossimulator-xcrun)
+ else()
+ message(FATAL_ERROR "Unknown iOS target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+ endif()
+ # disable that makes linkage error (e.g. require stderr usage)
+ list(APPEND DISABLES no-stdio no-ui no-asm)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
set(PLATFORM darwin64-x86_64-cc)
elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
@@ -79,7 +92,7 @@ if(BUILD_SHARED_LIBS)
REGEX "^#[\t ]*define[\t ]+SHLIB_VERSION_NUMBER[\t ]+\".*\".*")
string(REGEX REPLACE "^.*SHLIB_VERSION_NUMBER[\t ]+\"([^\"]*)\".*$" "\\1"
SHLIB_VERSION "${SHLIB_VERSION}")
- if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS")
set(LIB_EXT dylib)
set(LIB_EXTS ${SHLIB_VERSION}.${LIB_EXT})
elseif(MINGW)
@@ -118,6 +131,8 @@ else()
set(PATH_VAR ":$ENV{PATH}")
endif()
+
+
add_custom_command(
OUTPUT "${BUILDDIR}/Makefile"
COMMAND ${ENV_COMMAND} CC=${CMAKE_C_COMPILER}
@@ -138,6 +153,7 @@ add_custom_command(
no-seed
no-md2
no-tests
+ ${DISABLES}
${PLATFORM}
"--prefix=${CMAKE_INSTALL_PREFIX}"
"--openssldir=/etc/ssl"
diff --git a/ports/openssl-unix/CONTROL b/ports/openssl-unix/CONTROL
index 9ea5cc309..9c28728ff 100644
--- a/ports/openssl-unix/CONTROL
+++ b/ports/openssl-unix/CONTROL
@@ -1,5 +1,5 @@
Source: openssl-unix
Version: 1.1.1g
-Port-Version: 3
+Port-Version: 4
Description: OpenSSL is an open source project that provides a robust, commercial-grade, and full-featured toolkit for the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols. It is also a general-purpose cryptography library.
Supports: !(windows|uwp)
diff --git a/ports/opus/portfile.cmake b/ports/opus/portfile.cmake
index eb7b90cea..4102542c1 100644
--- a/ports/opus/portfile.cmake
+++ b/ports/opus/portfile.cmake
@@ -14,9 +14,18 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
avx AVX_SUPPORTED
)
+if(VCPKG_TARGET_IS_MINGW)
+ set(STACK_PROTECTOR OFF)
+ string(APPEND VCPKG_C_FLAGS "-D_FORTIFY_SOURCE=0")
+ string(APPEND VCPKG_CXX_FLAGS "-D_FORTIFY_SOURCE=0")
+else()
+ set(STACK_PROTECTOR ON)
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS ${FEATURE_OPTIONS}
+ -DOPUS_STACK_PROTECTOR=${STACK_PROTECTOR}
PREFER_NINJA)
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/Opus)
diff --git a/ports/pcl/CONTROL b/ports/pcl/CONTROL
index aea2d778e..4c3264050 100644
--- a/ports/pcl/CONTROL
+++ b/ports/pcl/CONTROL
@@ -1,5 +1,6 @@
Source: pcl
Version: 1.11.0
+Port-Version: 1
Homepage: https://github.com/PointCloudLibrary/pcl
Description: Point Cloud Library (PCL) is open source library for 2D/3D image and point cloud processing.
Build-Depends: eigen3, flann, qhull, vtk, libpng, boost-system, boost-filesystem, boost-thread, boost-date-time, boost-iostreams, boost-random, boost-foreach, boost-dynamic-bitset, boost-property-map, boost-graph, boost-multi-array, boost-signals2, boost-sort, boost-ptr-container, boost-uuid, boost-interprocess, boost-asio
diff --git a/ports/pcl/fix-check-sse.patch b/ports/pcl/fix-check-sse.patch
new file mode 100644
index 000000000..4fd6e676b
--- /dev/null
+++ b/ports/pcl/fix-check-sse.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e580b1a..572ea06 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -86,7 +86,7 @@ endif()
+
+ # check for SSE flags
+ include("${PCL_SOURCE_DIR}/cmake/pcl_find_sse.cmake")
+-if(PCL_ENABLE_SSE AND "${CMAKE_CXX_FLAGS}" STREQUAL "${CMAKE_CXX_FLAGS_DEFAULT}")
++if(PCL_ENABLE_SSE)
+ PCL_CHECK_FOR_SSE()
+ endif()
+
diff --git a/ports/pcl/portfile.cmake b/ports/pcl/portfile.cmake
index 378601155..632652289 100644
--- a/ports/pcl/portfile.cmake
+++ b/ports/pcl/portfile.cmake
@@ -11,6 +11,7 @@ vcpkg_from_github(
boost-1.70.patch
fix-link-libpng.patch
remove-broken-targets.patch
+ fix-check-sse.patch
)
file(REMOVE ${SOURCE_PATH}/cmake/Modules/FindFLANN.cmake)
diff --git a/ports/poco/CONTROL b/ports/poco/CONTROL
index 17c74d0aa..939a74945 100644
--- a/ports/poco/CONTROL
+++ b/ports/poco/CONTROL
@@ -1,6 +1,6 @@
Source: poco
Version: 1.9.2
-Port-Version: 3
+Port-Version: 4
Build-Depends: expat, libpq, pcre, sqlite3, zlib, libpng
Description: Modern, powerful open source C++ class libraries for building network and internet-based applications that run on desktop, server, mobile and embedded systems.
Homepage: https://github.com/pocoproject/poco
diff --git a/ports/poco/portfile.cmake b/ports/poco/portfile.cmake
index 18418e864..184db9c73 100644
--- a/ports/poco/portfile.cmake
+++ b/ports/poco/portfile.cmake
@@ -16,7 +16,6 @@ vcpkg_from_github(
# Add the support of arm64-windows
arm64_pcre.patch
fix_foundation_link.patch
- use-vcpkg-expat.patch
)
# define Poco linkage type
diff --git a/ports/poco/use-vcpkg-expat.patch b/ports/poco/use-vcpkg-expat.patch
deleted file mode 100644
index ee1990b9e..000000000
--- a/ports/poco/use-vcpkg-expat.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff --git a/XML/CMakeLists.txt b/XML/CMakeLists.txt
-index d4a502a..780f5d0 100644
---- a/XML/CMakeLists.txt
-+++ b/XML/CMakeLists.txt
-@@ -23,7 +23,12 @@ endif()
- # If POCO_UNBUNDLED is enabled we try to find the required packages
- # The configuration will fail if the packages are not found
- if (POCO_UNBUNDLED)
-- find_package(EXPAT REQUIRED)
-+ find_package(expat CONFIG REQUIRED)
-+ if(WIN32 AND NOT MINGW)
-+ set(EXPAT_LIBRARIES expat::libexpat)
-+ else()
-+ set(EXPAT_LIBRARIES expat::expat)
-+ endif()
- set(SYSLIBS ${SYSLIBS} ${EXPAT_LIBRARIES})
- include_directories(${EXPAT_INCLUDE_DIRS})
- else()
diff --git a/ports/portmidi/CONTROL b/ports/portmidi/CONTROL
index f5518c3e1..9f9f60c36 100644
--- a/ports/portmidi/CONTROL
+++ b/ports/portmidi/CONTROL
@@ -1,5 +1,5 @@
Source: portmidi
-Version: 0.217.1-4
+Version: 0.234
Homepage: https://sourceforge.net/projects/portmedia/
Description: Free, cross-platform, open-source I/O library for MIDI
-Supports: !uwp \ No newline at end of file
+Supports: windows&!uwp&!arm
diff --git a/ports/portmidi/portfile.cmake b/ports/portmidi/portfile.cmake
index b78b34fb4..a2049278b 100644
--- a/ports/portmidi/portfile.cmake
+++ b/ports/portmidi/portfile.cmake
@@ -1,13 +1,15 @@
-vcpkg_fail_port_install(ON_TARGET "UWP")
+vcpkg_fail_port_install(ON_TARGET "linux" "osx" "uwp" ON_ARCH "arm")
vcpkg_from_sourceforge(
OUT_SOURCE_PATH SOURCE_PATH
- REPO portmedia/portmidi
- REF 217
- FILENAME "portmidi-src-217.zip"
- SHA512 d08d4d57429d26d292b5fe6868b7c7a32f2f1d2428f6695cd403a697e2d91629bd4380242ab2720e8f21c895bb75cb56b709fb663a20e8e623120e50bfc5d90b
+ REPO portmedia
+ FILENAME "portmedia-code-r234.zip"
+ SHA512 cbc332d89bc465450b38245a83cc300dfd2e1e6de7c62284edf754ff4d8a9aa3dc49a395dcee535ed9688befb019186fa87fd6d8a3698898c2acbf3e6b7a0794
)
+# Alter path to main portmidi root
+set(SOURCE_PATH "${SOURCE_PATH}/portmidi/trunk")
+
# Mark portmidi-static as static, disable pmjni library depending on the Java SDK
file(READ "${SOURCE_PATH}/pm_common/CMakeLists.txt" PM_CMAKE)
diff --git a/ports/protobuf/CONTROL b/ports/protobuf/CONTROL
index 3b2a541bc..a79f2aaf2 100644
--- a/ports/protobuf/CONTROL
+++ b/ports/protobuf/CONTROL
@@ -1,7 +1,6 @@
Source: protobuf
-Version: 3.12.3
-Port-Version: 2
-Homepage: https://github.com/google/protobuf
+Version: 3.13.0
+Homepage: https://github.com/protocolbuffers/protobuf
Description: Protocol Buffers - Google's data interchange format
Feature: zlib
diff --git a/ports/protobuf/fix-uwp.patch b/ports/protobuf/fix-uwp.patch
index af3795df4..44f23579f 100644
--- a/ports/protobuf/fix-uwp.patch
+++ b/ports/protobuf/fix-uwp.patch
@@ -1,8 +1,8 @@
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
-index 849679995..dba537a68 100644
+index 9ca31ac0b..237468c55 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
-@@ -198,6 +198,7 @@ if (MSVC)
+@@ -207,6 +207,7 @@ if (MSVC)
/wd4506 # no definition for inline function 'function'
/wd4800 # 'type' : forcing value to bool 'true' or 'false' (performance warning)
/wd4996 # The compiler encountered a deprecated declaration.
diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake
index 3b8f806cf..389674afb 100644
--- a/ports/protobuf/portfile.cmake
+++ b/ports/protobuf/portfile.cmake
@@ -1,8 +1,8 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO protocolbuffers/protobuf
- REF 31ebe2ac71400344a5db91ffc13c4ddfb7589f92 #v3.12.3
- SHA512 74e623547bb9448ccea29925172bf13fcbffab80eb02f58d248180000b4ae7249f0dee88bb4ef438857b0e1a96a600ab270ebf3b58568da28cbf97d8a2398297
+ REF fde7cf7358ec7cd69e8db9be4f1fa6a5c431386a #v3.13.0
+ SHA512 b458410311a0905048c86d70ded263ae0cbb6693fd42cba730d3a95c69ca533cf453eb15c5f8bf8b00003ddc63fe96b3c4242907e2d6b00d5bec5d37b2ae1c5e
HEAD_REF master
PATCHES
fix-uwp.patch
diff --git a/ports/rapidcheck/CONTROL b/ports/rapidcheck/CONTROL
index 9c3e4c7b5..5f46ed702 100644
--- a/ports/rapidcheck/CONTROL
+++ b/ports/rapidcheck/CONTROL
@@ -1,4 +1,4 @@
Source: rapidcheck
-Version: 2018-11-05-2
+Version: 2020-08-25
Homepage: https://github.com/emil-e/rapidcheck
Description: A property-based testing library for C++ (a la QuickCheck) with the goal of being simple to use with as little boilerplate as possible.
diff --git a/ports/rapidcheck/fix-addiosfwd.patch b/ports/rapidcheck/fix-addiosfwd.patch
deleted file mode 100644
index 016f859c2..000000000
--- a/ports/rapidcheck/fix-addiosfwd.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/include/rapidcheck/Random.h b/include/rapidcheck/Random.h
-index e510673..4b01f58 100644
---- a/include/rapidcheck/Random.h
-+++ b/include/rapidcheck/Random.h
-@@ -3,6 +3,7 @@
- #include <cstdint>
- #include <array>
- #include <limits>
-+#include <iosfwd>
-
- namespace rc {
-
diff --git a/ports/rapidcheck/portfile.cmake b/ports/rapidcheck/portfile.cmake
index 892942d32..544319ce5 100644
--- a/ports/rapidcheck/portfile.cmake
+++ b/ports/rapidcheck/portfile.cmake
@@ -3,10 +3,9 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO emil-e/rapidcheck
- REF cf9e0d8bd8c94e9dc00dc0ab302352bfaf1a3ac5
- SHA512 6cef62edbda391c3527d63db350842f669841ad2c751a64773250cd40bb65f26c2c394b107ef5530c2d3bd15b7079148fa9778d68a7346225bbb15227b1553c5
+ REF 7bc7d302191a4f3d0bf005692677126136e02f60
+ SHA512 8631f1034a0a24293d61a91cbb8f8b69c70acde02d60377d0a68d045e4d57acb878aafbea76907574c0cc6cdac3a16d207d310b49d7c48ee7edbede3236ed15b
HEAD_REF master
- PATCHES fix-addiosfwd.patch
)
vcpkg_configure_cmake(
diff --git a/ports/re2/CONTROL b/ports/re2/CONTROL
index 5b4231eae..39deaf459 100644
--- a/ports/re2/CONTROL
+++ b/ports/re2/CONTROL
@@ -1,4 +1,4 @@
Source: re2
-Version: 2020-01-01
+Version: 2020-06-01
Homepage: https://github.com/google/re2
Description: RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library.
diff --git a/ports/re2/portfile.cmake b/ports/re2/portfile.cmake
index 1963a6e6d..fac44a194 100644
--- a/ports/re2/portfile.cmake
+++ b/ports/re2/portfile.cmake
@@ -1,8 +1,8 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO google/re2
- REF 2020-01-01
- SHA512 ca9c5e3b63b55074ad1d74b73bcf115ae285b3b8989bb56de0bccdfd7b423df742cfd1d1b6eb963da6dc550b81f492eaef9a9c582e354906b8dd1b92fb451ed0
+ REF 2020-06-01
+ SHA512 8592a5409cb087c3188023746a4121bd58972a7a21bae98022af587f6191b3096bbb5d379e622ea853ff3373c76972fb61f331354550715c9a7e77d08fba6f3c
HEAD_REF master
)
diff --git a/ports/restinio/CONTROL b/ports/restinio/CONTROL
index f86387b32..290e16767 100644
--- a/ports/restinio/CONTROL
+++ b/ports/restinio/CONTROL
@@ -1,5 +1,5 @@
Source: restinio
-Version: 0.6.9
+Version: 0.6.10
Description: A header-only C++14 library that gives you an embedded HTTP/Websocket server targeted primarily for asynchronous processing of HTTP-requests.
Build-Depends: asio, fmt, http-parser
Homepage: https://github.com/stiffstream/restinio
diff --git a/ports/restinio/portfile.cmake b/ports/restinio/portfile.cmake
index 5dcd5e690..9a1995f75 100644
--- a/ports/restinio/portfile.cmake
+++ b/ports/restinio/portfile.cmake
@@ -1,8 +1,8 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO stiffstream/restinio
- REF 0ef04a26155d8aa4a56a36cc013c7e722675da21 # v.0.6.9
- SHA512 6ae218275f8b654e64708bfde7873170d613e830ffce4e9dade18ff06c47c0a8eec42570fe59f36e31ab052ad0e7724928d94fd70c6f72454a3cd7eb6cdbf175
+ REF bac11ec9cd08e3d1ebe663a9be17f0808e74d7af # v.0.6.10
+ SHA512 c41f71c13346ca07b78ec8d451c2a591e819eb7459386b24d527d349564562be582969e969dc18cbaf45e9689203c6f7d43e69245dd7af0f82d38afdcb8cd804
)
vcpkg_configure_cmake(
diff --git a/ports/rpclib/CONTROL b/ports/rpclib/CONTROL
index 15e6abd3e..44d28780d 100644
--- a/ports/rpclib/CONTROL
+++ b/ports/rpclib/CONTROL
@@ -1,4 +1,5 @@
Source: rpclib
-Version: 2.2.1-1
+Version: 2.2.1
+Port-Version: 2
Homepage: https://github.com/rpclib/rpclib
Description: a RPC library for C++, providing both a client and server implementation. It is built using modern C++14.
diff --git a/ports/rpclib/portfile.cmake b/ports/rpclib/portfile.cmake
index 9865a2afe..eb42ebeba 100644
--- a/ports/rpclib/portfile.cmake
+++ b/ports/rpclib/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
@@ -12,6 +10,7 @@ vcpkg_from_github(
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
+ DISABLE_PARALLEL_CONFIGURE
PREFER_NINJA
)
@@ -23,5 +22,4 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/rpclib)
vcpkg_copy_pdbs()
-file(COPY ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/rpclib)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/rpclib/LICENSE.md ${CURRENT_PACKAGES_DIR}/share/rpclib/copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/sfml/CONTROL b/ports/sfml/CONTROL
index 836280f8b..d126e395e 100644
--- a/ports/sfml/CONTROL
+++ b/ports/sfml/CONTROL
@@ -1,6 +1,6 @@
Source: sfml
Version: 2.5.1
-Port-Version: 8
+Port-Version: 9
Homepage: https://github.com/sfml/sfml
Description: Simple and fast multimedia library
Build-Depends: freetype, libflac, libogg, libvorbis, openal-soft, stb
diff --git a/ports/sfml/portfile.cmake b/ports/sfml/portfile.cmake
index 82f6e11d1..0a028db19 100644
--- a/ports/sfml/portfile.cmake
+++ b/ports/sfml/portfile.cmake
@@ -33,9 +33,11 @@ vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/SFML)
vcpkg_copy_pdbs()
+FILE(READ ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake SFML_CONFIG)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- FILE(READ ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake SFML_CONFIG)
FILE(WRITE ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake "set(SFML_STATIC_LIBRARIES true)\ninclude(CMakeFindDependencyMacro)\nfind_dependency(Freetype)\n${SFML_CONFIG}")
+else()
+ FILE(WRITE ${CURRENT_PACKAGES_DIR}/share/sfml/SFMLConfig.cmake "set(SFML_STATIC_LIBRARIES false)\n${SFML_CONFIG}")
endif()
# move sfml-main to manual link dir
diff --git a/ports/shogun/CONTROL b/ports/shogun/CONTROL
index 5f46ded2a..580a8be31 100644
--- a/ports/shogun/CONTROL
+++ b/ports/shogun/CONTROL
@@ -1,5 +1,6 @@
Source: shogun
-Version: 6.1.4-1
-Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas (x64&!osx), nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent
+Version: 6.1.4
+Port-Version: 2
+Build-Depends: bzip2, eigen3, liblzma, libxml2, openblas, nlopt, rxcpp, snappy, zlib, protobuf, curl, lzo, dirent
Homepage: https://github.com/shogun-toolbox/shogun
Description: Unified and efficient Machine Learning \ No newline at end of file
diff --git a/ports/shogun/portfile.cmake b/ports/shogun/portfile.cmake
index ce68bcb57..47555a75b 100644
--- a/ports/shogun/portfile.cmake
+++ b/ports/shogun/portfile.cmake
@@ -1,11 +1,5 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
- set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 0)
-else()
- set(CMAKE_DISABLE_FIND_PACKAGE_BLAS 1)
-endif()
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO shogun-toolbox/shogun
@@ -44,10 +38,9 @@ vcpkg_configure_cmake(
-DCMAKE_DISABLE_FIND_PACKAGE_ARPREC=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_Ctags=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_CCache=TRUE
- -DCMAKE_DISABLE_FIND_PACKAGE_LAPACK=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=TRUE
-DCMAKE_DISABLE_FIND_PACKAGE_CURL=TRUE
- -DCMAKE_DISABLE_FIND_PACKAGE_BLAS=${CMAKE_DISABLE_FIND_PACKAGE_BLAS}
+ -DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=TRUE
-DINSTALL_TARGETS=shogun-static
)
@@ -62,4 +55,4 @@ file(REMOVE_RECURSE
)
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/skia/CONTROL b/ports/skia/CONTROL
index 6b6677ab9..e06605d1d 100644
--- a/ports/skia/CONTROL
+++ b/ports/skia/CONTROL
@@ -1,6 +1,6 @@
Source: skia
Version: 2020-05-18
-Port-Version: 2
+Port-Version: 4
Homepage: https://skia.org
Description: Skia is an open source 2D graphics library which provides common APIs that work across a variety of hardware and software platforms.
It serves as the graphics engine for Google Chrome and Chrome OS, Android, Mozilla Firefox and Firefox OS, and many other products.
diff --git a/ports/skia/add-missing-tuple.patch b/ports/skia/add-missing-tuple.patch
new file mode 100644
index 000000000..e33d44e3a
--- /dev/null
+++ b/ports/skia/add-missing-tuple.patch
@@ -0,0 +1,12 @@
+diff --git a/include/private/SkPathRef.h b/include/private/SkPathRef.h
+index 7afe4f9..502f83e 100644
+--- a/include/private/SkPathRef.h
++++ b/include/private/SkPathRef.h
+@@ -21,6 +21,7 @@
+
+ #include <atomic>
+ #include <limits>
++#include <tuple>
+
+ class SkRBuffer;
+ class SkWBuffer;
diff --git a/ports/skia/portfile.cmake b/ports/skia/portfile.cmake
index cdd7254ca..30feaf013 100644
--- a/ports/skia/portfile.cmake
+++ b/ports/skia/portfile.cmake
@@ -6,6 +6,7 @@ vcpkg_from_git(
OUT_SOURCE_PATH SOURCE_PATH
URL https://skia.googlesource.com/skia.git
REF fb0b35fed5580d49392df7ce9374551b348fffbf
+ PATCHES add-missing-tuple.patch
)
function(checkout_in_path PATH URL REF)
diff --git a/ports/sqlitecpp/CONTROL b/ports/sqlitecpp/CONTROL
index 372acc14b..f617bf93e 100644
--- a/ports/sqlitecpp/CONTROL
+++ b/ports/sqlitecpp/CONTROL
@@ -1,6 +1,6 @@
Source: sqlitecpp
Version: 3.0.0
-Port-Version: 1
+Port-Version: 2
Build-Depends: sqlite3
Homepage: https://github.com/SRombauts/SQLiteCpp
Description: SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
diff --git a/ports/sqlitecpp/fix_dependency.patch b/ports/sqlitecpp/fix_dependency.patch
new file mode 100644
index 000000000..435061c02
--- /dev/null
+++ b/ports/sqlitecpp/fix_dependency.patch
@@ -0,0 +1,11 @@
+diff --git a/cmake/SQLiteCppConfig.cmake.in b/cmake/SQLiteCppConfig.cmake.in
+index 82c32db..a485ad8 100644
+--- a/cmake/SQLiteCppConfig.cmake.in
++++ b/cmake/SQLiteCppConfig.cmake.in
+@@ -1,5 +1,5 @@
+ include(CMakeFindDependencyMacro)
+-find_dependency(SQLite3)
++find_dependency(unofficial-sqlite3)
+
+ @PACKAGE_INIT@
+
diff --git a/ports/sqlitecpp/portfile.cmake b/ports/sqlitecpp/portfile.cmake
index 9f2febab0..27d2e3204 100644
--- a/ports/sqlitecpp/portfile.cmake
+++ b/ports/sqlitecpp/portfile.cmake
@@ -7,6 +7,7 @@ vcpkg_from_github(OUT_SOURCE_PATH SOURCE_PATH
SHA512 d48b5915a2674f7f6da2737fa365e2202373e95cd20e819281b765a597e2fa8b8ae33f6553d65b6a8a93741e31633de3c75caf84fffa4313154c43ce634b1323
PATCHES
0001-Find-external-sqlite3.patch
+ fix_dependency.patch
)
vcpkg_configure_cmake(
diff --git a/ports/suitesparse/CONTROL b/ports/suitesparse/CONTROL
index 722dac004..832306d5a 100644
--- a/ports/suitesparse/CONTROL
+++ b/ports/suitesparse/CONTROL
@@ -1,10 +1,5 @@
Source: suitesparse
-Version: 5.4.0
-Port-Version: 7
-Build-Depends: lapack
-Homepage: http://faculty.cse.tamu.edu/davis/SuiteSparse
+Version: 5.8.0
+Build-Depends: lapack, metis
+Homepage: http://suitesparse.com
Description: algebra library
-
-Feature: metis
-Build-Depends: metis
-Description: Use metis in SuiteSparse
diff --git a/ports/suitesparse/FindCXSparse.cmake b/ports/suitesparse/FindCXSparse.cmake
new file mode 100644
index 000000000..94ba41e04
--- /dev/null
+++ b/ports/suitesparse/FindCXSparse.cmake
@@ -0,0 +1,75 @@
+# Distributed under the OSI-approved BSD 3-Clause License.
+#
+#.rst:
+# FindCXSparse
+# --------
+#
+# Find the CXSparse library
+#
+# Result Variables
+# ^^^^^^^^^^^^^^^^
+#
+# The following variables will be defined:
+#
+# ``CXSparse_FOUND``
+# True if CXSparse found on the local system
+#
+# ``CXSPARSE_FOUND``
+# True if CXSparse found on the local system
+#
+# ``CXSparse_INCLUDE_DIRS``
+# Location of CXSparse header files
+#
+# ``CXSPARSE_INCLUDE_DIRS``
+# Location of CXSparse header files
+#
+# ``CXSparse_LIBRARIES``
+# List of the CXSparse libraries found
+#
+# ``CXSPARSE_LIBRARIES``
+# List of the CXSparse libraries found
+#
+#
+
+include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)
+include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)
+include(${CMAKE_ROOT}/Modules/CMakeFindDependencyMacro.cmake)
+
+find_path(CXSPARSE_INCLUDE_DIR NAMES cs.h)
+
+find_library(CXSPARSE_LIBRARY_RELEASE NAMES cxsparse libcxsparse)
+find_library(CXSPARSE_LIBRARY_DEBUG NAMES cxsparsed libcxsparsed)
+select_library_configurations(CXSPARSE)
+
+if(CXSPARSE_INCLUDE_DIR)
+ set(CXSPARSE_VERSION_FILE ${CXSPARSE_INCLUDE_DIR}/cs.h)
+ file(READ ${CXSPARSE_INCLUDE_DIR}/cs.h CXSPARSE_VERSION_FILE_CONTENTS)
+
+ string(REGEX MATCH "#define CS_VER [0-9]+"
+ CXSPARSE_MAIN_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
+ string(REGEX REPLACE "#define CS_VER ([0-9]+)" "\\1"
+ CXSPARSE_MAIN_VERSION "${CXSPARSE_MAIN_VERSION}")
+
+ string(REGEX MATCH "#define CS_SUBVER [0-9]+"
+ CXSPARSE_SUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
+ string(REGEX REPLACE "#define CS_SUBVER ([0-9]+)" "\\1"
+ CXSPARSE_SUB_VERSION "${CXSPARSE_SUB_VERSION}")
+
+ string(REGEX MATCH "#define CS_SUBSUB [0-9]+"
+ CXSPARSE_SUBSUB_VERSION "${CXSPARSE_VERSION_FILE_CONTENTS}")
+ string(REGEX REPLACE "#define CS_SUBSUB ([0-9]+)" "\\1"
+ CXSPARSE_SUBSUB_VERSION "${CXSPARSE_SUBSUB_VERSION}")
+
+ set(CXSPARSE_VERSION "${CXSPARSE_MAIN_VERSION}.${CXSPARSE_SUB_VERSION}.${CXSPARSE_SUBSUB_VERSION}")
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(CXSparse
+ REQUIRED_VARS CXSPARSE_INCLUDE_DIRS CXSPARSE_LIBRARIES
+ VERSION_VAR CXSPARSE_VERSION)
+
+set(CXSPARSE_FOUND ${CXSparse_FOUND})
+set(CXSPARSE_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR})
+set(CXSPARSE_LIBRARIES ${CXSPARSE_LIBRARY})
+set(CXSparse_INCLUDE_DIRS ${CXSPARSE_INCLUDE_DIR})
+set(CXSparse_LIBRARIES ${CXSPARSE_LIBRARY})
diff --git a/ports/suitesparse/add-find-package-metis.patch b/ports/suitesparse/add-find-package-metis.patch
deleted file mode 100644
index 297309ea0..000000000
--- a/ports/suitesparse/add-find-package-metis.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b8c2e63..d443390 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -199,12 +199,15 @@ if(LAPACK_FOUND AND BLAS_FOUND)
- endif() # LAPACK is not found
-
- IF(BUILD_METIS OR USE_VCPKG_METIS)
-+ find_package(metis REQUIRED)
- set(SuiteSparse_LINKER_METIS_LIBS "metis")
- ## namespaced library target for config
-- set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
-+ set(SuiteSparse_EXPORTED_METIS_LIBS "metis")
-+ set(SuiteSparse_FIND_PACKAGE_METIS "find_package(metis REQUIRED)")
- else()
- set(SuiteSparse_LINKER_METIS_LIBS "")
- set(SuiteSparse_EXPORTED_METIS_LIBS "")
-+ set(SuiteSparse_FIND_PACKAGE_METIS "")
- ENDIF()
-
- add_subdirectory(SuiteSparse)
-diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
-index 5ef08a6..6c7abfd 100644
---- a/SuiteSparse/CMakeLists.txt
-+++ b/SuiteSparse/CMakeLists.txt
-@@ -13,7 +13,7 @@ ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-
- # Global flags:
- IF (BUILD_METIS OR USE_VCPKG_METIS)
-- INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
-+ #INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
- ELSE ()
- ADD_DEFINITIONS(-DNPARTITION)
- ENDIF ()
-diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
-index 49387b8..553d9c7 100644
---- a/cmake/SuiteSparse-config-install.cmake.in
-+++ b/cmake/SuiteSparse-config-install.cmake.in
-@@ -5,6 +5,7 @@ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
- get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
-
- find_package(LAPACK REQUIRED)
-+@SuiteSparse_FIND_PACKAGE_METIS@
-
- # Load targets from the install tree.
- include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
diff --git a/ports/suitesparse/build_fixes.patch b/ports/suitesparse/build_fixes.patch
new file mode 100644
index 000000000..2734bb02c
--- /dev/null
+++ b/ports/suitesparse/build_fixes.patch
@@ -0,0 +1,281 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9602cce..dafb434 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,14 +5,6 @@
+ # Updated by jesnault (jerome.esnault@inria.fr) 2014-01-21
+ # -----------------------------------------------------------------
+
+-option(HUNTER_ENABLED "Enable Hunter package manager support" OFF)
+-include(cmake/HunterGate.cmake)
+-
+-HunterGate(
+- URL "https://github.com/ruslo/hunter/archive/v0.23.214.tar.gz"
+- SHA1 "e14bc153a7f16d6a5eeec845fb0283c8fad8c358"
+-)
+-
+ PROJECT(SuiteSparseProject)
+
+ cmake_minimum_required(VERSION 3.1)
+@@ -47,29 +39,9 @@ else()
+ message(STATUS "Using user defined CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}")
+ endif()
+
+-# Fix GKlib path:
+-IF(NOT WIN32)
+- SET(GKLIB_PATH "${${PROJECT_NAME}_SOURCE_DIR}/SuiteSparse/metis-5.1.0/GKlib" CACHE INTERNAL "Path to GKlib (for METIS)" FORCE)
+-ENDIF()
+-
+-# allow creating DLLs in Windows without touching the source code:
+-IF(NOT ${CMAKE_VERSION} VERSION_LESS "3.4.0" AND WIN32)
+- set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+-ENDIF()
+-
+ ## get CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_LIBDIR
+ include(GNUInstallDirs)
+
+-if(CMAKE_SIZEOF_VOID_P MATCHES "8")
+- set(SUITESPARSE_LIB_POSTFIX "64")
+-else()
+- set(SUITESPARSE_LIB_POSTFIX "")
+-endif()
+-
+-## get POSTFIX for lib install dir
+-set(LIB_POSTFIX "${SUITESPARSE_LIB_POSTFIX}" CACHE STRING "suffix for 32/64 inst dir placement")
+-mark_as_advanced(LIB_POSTFIX)
+-
+ # We want libraries to be named "libXXX" and "libXXXd" in all compilers:
+ # ------------------------------------------------------------------------
+ set(CMAKE_DEBUG_POSTFIX "d")
+@@ -77,59 +49,6 @@ IF(MSVC)
+ set(SP_LIB_PREFIX "lib") # Libs are: "libXXX"
+ ENDIF(MSVC)
+
+-## check if we can build metis
+-SET(BUILD_METIS_DEFAULT ON)
+-if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/SuiteSparse/metis-5.1.0/CMakeLists.txt")
+- SET(BUILD_METIS_DEFAULT OFF)
+-endif()
+-
+-SET(WITH_CUDA OFF CACHE BOOL "Build with CUDA support")
+-
+-SET(BUILD_METIS ${BUILD_METIS_DEFAULT} CACHE BOOL "Build METIS for partitioning?")
+-SET(METIS_DIR ${${PROJECT_NAME}_SOURCE_DIR}/SuiteSparse/metis-5.1.0 CACHE PATH "Source directory of METIS")
+-
+-if(BUILD_METIS)
+- ## prepare the installation :
+- ## using metis target here is not possible because this target is added in another branch of the CMake structure
+- ## TRICK: need to dynamically modify the metis CMakeLists.txt file before it going to parsed...
+- ## (very ugly/poor for a metis project get from SCM (git/svn/cvs) but it's works ;) and it doesn't matter if metis was get from .zip)
+- if(EXISTS "${METIS_DIR}/libmetis/CMakeLists.txt")
+- file(READ "${METIS_DIR}/libmetis/CMakeLists.txt" contentFile)
+- string(REGEX MATCH "EXPORT SuiteSparseTargets" alreadyModified ${contentFile}) ## use a string pattern to check if we have to do the modif
+- if(NOT alreadyModified)
+- file(APPEND "${METIS_DIR}/libmetis/CMakeLists.txt"
+- "
+- set_target_properties(metis PROPERTIES PUBLIC_HEADER \"../include/metis.h\")
+- install(TARGETS metis ## this line is also the string pattern to check if the modification had already done
+- EXPORT SuiteSparseTargets
+- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+- PUBLIC_HEADER DESTINATION include
+- )
+- "
+- )
+- endif()
+- endif()
+- add_subdirectory(SuiteSparse/metis-5.1.0) ## important part for building metis from its src files
+-endif(BUILD_METIS)
+-
+-
+-## For EXPORT only :
+-## Previous version of cmake (>2.8.12) doesn't auto take into account external lib (here I mean blas and lapack) we need to link to for our current target we want to export.
+-## Or at least we need to investigate how to do with previous version.
+-## This may cause some trouble in case you want to build in static mode and then use it into another custom project.
+-## You will need to manually link your target into your custom project to the correct dependencies link interfaces.
+-if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" GREATER 2.8.11) ## (policies introduced both in 2.8.12)
+- set(EXPORT_USE_INTERFACE_LINK_LIBRARIES ON CACHE BOOL "")
+- mark_as_advanced(EXPORT_USE_INTERFACE_LINK_LIBRARIES)
+- if(EXPORT_USE_INTERFACE_LINK_LIBRARIES)
+- cmake_policy(SET CMP0023 NEW) ## just for respecting the new target_link_libraries(...) signature procedure
+- cmake_policy(SET CMP0022 NEW) ## use INTERFACE_LINK_LIBRARIES property for in-build targets and ignore old properties (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?
+- ## Here, next version of cmake 2.8.12 auto take into account the link interface dependencies (see generated cmake/SuiteSparse-config*.cmake into your install dir)
+- endif()
+-endif()
+-
+ ## install_suitesparse_project(targetName headersList)
+ ## factorise the way we will install all projects (part of the suitesparse project)
+ ## <targetName> is the target of the current project you build
+@@ -176,16 +95,16 @@ macro(declare_suitesparse_library targetName srcsList headersList)
+ set(dsl_TARGET_PUBLIC_LINK "")
+ endif()
+ if(WITH_CUDA)
+- find_package(CUDA)
++ find_package(CUDA REQUIRED)
+ endif()
+- IF(${CUDA_FOUND})
++ IF(CUDA_FOUND)
+ INCLUDE_DIRECTORIES(${CUDA_INCLUDE_DIRS})
+ INCLUDE_DIRECTORIES(${SuiteSparse_GPUQREngine_INCLUDE})
+ INCLUDE_DIRECTORIES(${SuiteSparse_GPURuntime_INCLUDE})
+ CUDA_ADD_LIBRARY(${targetName} ${srcsList} ${headersList})
+- ELSE(${CUDA_FOUND})
++ ELSE()
+ ADD_LIBRARY(${targetName} ${srcsList} ${headersList})
+- ENDIF(${CUDA_FOUND})
++ ENDIF()
+ SET_TARGET_PROPERTIES(${targetName} PROPERTIES
+ OUTPUT_NAME ${SP_LIB_PREFIX}${targetName}
+ )
+@@ -211,44 +130,30 @@ MACRO(REMOVE_MATCHING_FILES_FROM_LIST match_expr lst_files)
+ ENDMACRO(REMOVE_MATCHING_FILES_FROM_LIST)
+
+ if(WITH_CUDA)
+- FIND_PACKAGE(cuda)
+- IF(${CUDA_FOUND})
++ FIND_PACKAGE(CUDA REQUIRED)
++ IF(CUDA_FOUND)
+ ADD_DEFINITIONS(-DGPU_BLAS)
+- ENDIF(${CUDA_FOUND})
++ ENDIF()
+ endif()
+
+-hunter_add_package(LAPACK) # only in effect if HUNTER_ENABLED is set
+-# prefer LAPACK config file
+-find_package(LAPACK CONFIG)
+-if (LAPACK_FOUND AND TARGET blas AND TARGET lapack)
+- message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
+- message(STATUS "- LAPACK_CONFIG: ${LAPACK_CONFIG}")
+- set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS lapack blas)
+- # for suitesparse-config file set method used to find LAPACK (and BLAS)
+- set(SuiteSparse_LAPACK_used_CONFIG YES)
+-else()
+- # missing config file or targets, try BLAS and LAPACK
+- find_package(BLAS)
+- find_package(LAPACK)
+- if (BLAS_FOUND AND LAPACK_FOUND)
++ find_package(BLAS REQUIRED)
++ find_package(LAPACK REQUIRED)
+ message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
+ message(STATUS "- LAPACK_LIBRARIES: ${LAPACK_LIBRARIES}")
+ message(STATUS "- BLAS_LIBRARIES: ${BLAS_LIBRARIES}")
+ set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
+ # for suitesparse-config file set method used to find LAPACK (and BLAS)
+ set(SuiteSparse_LAPACK_used_CONFIG NO)
+- else () # LAPACK is not found
+- message(FATAL_ERROR "lapack not found")
+- endif()
+-endif()
+
+-IF(BUILD_METIS)
++IF(USE_VCPKG_METIS)
++ find_package(metis REQUIRED)
+ set(SuiteSparse_LINKER_METIS_LIBS "metis")
+- ## namespaced library target for config
+- set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
++ set(SuiteSparse_EXPORTED_METIS_LIBS "metis")
++ set(SuiteSparse_FIND_DEPENDENCY_METIS "find_dependency(metis REQUIRED)")
+ else()
+ set(SuiteSparse_LINKER_METIS_LIBS "")
+ set(SuiteSparse_EXPORTED_METIS_LIBS "")
++ set(SuiteSparse_FIND_PACKAGE_METIS "")
+ ENDIF()
+
+ add_subdirectory(SuiteSparse)
+@@ -287,7 +192,7 @@ endmacro()
+ # get SuiteSparse version
+ get_SuiteSparse_Version()
+
+-set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/suitesparse-${SuiteSparse_VERSION})
++set(ConfigPackageLocation ${CMAKE_INSTALL_LIBDIR}/cmake/suitesparse)
+ ## create targets file
+ export(EXPORT SuiteSparseTargets
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/suitesparse/suitesparse-targets.cmake"
+@@ -301,7 +206,7 @@ configure_file(cmake/SuiteSparse-config-install.cmake.in
+ ## do the EXPORT for allowing other project to easily use suitesparse with cmake
+ install(EXPORT SuiteSparseTargets
+ FILE
+- SuiteSparse-targets.cmake
++ suitesparse-targets.cmake
+ NAMESPACE
+ SuiteSparse::
+ DESTINATION
+diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
+index c6e2834..6fdfb01 100644
+--- a/SuiteSparse/CMakeLists.txt
++++ b/SuiteSparse/CMakeLists.txt
+@@ -1,23 +1,5 @@
+ PROJECT(SuiteSparse)
+
+-# Set optimized building:
+-IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3")
+- # only optimize for native processer when NOT cross compiling
+- if(NOT CMAKE_CROSSCOMPILING)
+- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mtune=native")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mtune=native")
+- endif(NOT CMAKE_CROSSCOMPILING)
+-ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
+-
+-# Global flags:
+-IF (BUILD_METIS)
+- INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
+-ELSE (BUILD_METIS)
+- ADD_DEFINITIONS(-DNPARTITION)
+-ENDIF ( BUILD_METIS)
+-
+ # Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms.
+ SET(HAVE_COMPLEX OFF CACHE BOOL "Enables building SuiteSparse with complex numbers (disabled by default to avoid problems in some platforms)")
+ IF (NOT HAVE_COMPLEX)
+@@ -38,12 +20,12 @@ if(WITH_CUDA)
+ set(SUBPROJECTS_TO_ADD
+ ${SUBPROJECTS_TO_ADD}
+ SuiteSparse_GPURuntime
+- GPUQREngine
++ GPUQREngine
+ )
+ endif()
+
+ set(SUBPROJECTS_TO_ADD
+- ${SUBPROJECTS_TO_ADD}
++ ${SUBPROJECTS_TO_ADD}
+ SuiteSparse_config
+ AMD
+ BTF
+diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
+index 1e587d1..fd8f3a7 100644
+--- a/cmake/SuiteSparse-config-install.cmake.in
++++ b/cmake/SuiteSparse-config-install.cmake.in
+@@ -2,20 +2,14 @@
+ get_filename_component(_SuiteSparse_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_SELF_DIR}" PATH)
+ get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
+-get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
+
+ include(CMakeFindDependencyMacro)
+-if (@SuiteSparse_LAPACK_used_CONFIG@) # SuiteSparse_LAPACK_used_CONFIG
+- # use config file which provides LAPACK (and BLAS) for us
+- find_dependency(LAPACK CONFIG)
+-else()
+- # try to find BLAS and LAPACK with modules
+ find_dependency(BLAS)
+ find_dependency(LAPACK)
+-endif ()
++ @SuiteSparse_FIND_DEPENDENCY_METIS@
+
+ # Load targets from the install tree.
+-include(${_SuiteSparse_SELF_DIR}/SuiteSparse-targets.cmake)
++include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
+
+ # Report SuiteSparse header search locations.
+ set(SuiteSparse_INCLUDE_DIRS ${_SuiteSparse_PREFIX}/include)
+@@ -39,3 +33,7 @@ set(SuiteSparse_LIBRARIES
+
+ unset(_SuiteSparse_PREFIX)
+ unset(_SuiteSparse_SELF_DIR)
++set(SUITESPARSE_FOUND TRUE)
++set(SuiteSparse_FOUND TRUE)
++set(SUITESPARSE_LIBRARIES ${SuiteSparse_LIBRARIES})
++set(SUITESPARSE_INCLUDE_DIRS ${SuiteSparse_INCLUDE_DIRS})
diff --git a/ports/suitesparse/portfile.cmake b/ports/suitesparse/portfile.cmake
index d55688121..44dfa8c36 100644
--- a/ports/suitesparse/portfile.cmake
+++ b/ports/suitesparse/portfile.cmake
@@ -1,54 +1,41 @@
-set(SUITESPARSE_VER 5.4.0)
-set(SUITESPARSEWIN_VER 1.4.0)
-
-vcpkg_download_distfile(SUITESPARSE
- URLS "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${SUITESPARSE_VER}.tar.gz"
- FILENAME "SuiteSparse-${SUITESPARSE_VER}.tar.gz"
- SHA512 8328bcc2ef5eb03febf91b9c71159f091ff405c1ba7522e53714120fcf857ceab2d2ecf8bf9a2e1fc45e1a934665a341e3a47f954f87b59934f4fce6164775d6
-)
-
-vcpkg_extract_source_archive_ex(
+vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE ${SUITESPARSE}
+ REPO DrTimothyAldenDavis/SuiteSparse
+ REF 71e330ca2bc0a2f12f416c461d23dbca21db4d8f
+ SHA512 06c75927c924cfd5511b07504e826714f504586243d6f3449d67408a33f3ecea824a7f2de7a165171791b9bda4fc09c0d7093125970895c2ed8d4d37ca1d5a3d
+ HEAD_REF master
)
vcpkg_from_github(
OUT_SOURCE_PATH SUITESPARSEWIN_SOURCE_PATH
REPO jlblancoc/suitesparse-metis-for-windows
- REF v${SUITESPARSEWIN_VER}
- SHA512 35a2563d6e33ebe8157f8d023167abd8d2512e2a627b8dbea798c59afefc56b8f01c7d10553529b03a7b4759e200ca82bb26ebce5cefce6983ffb057a8622162
+ REF c11e8dd7a2ef7d0d93af4c16f75374dd8ca029e2
+ SHA512 fbd2a9e6f7df47eeb5d890c7b286bef7fc4c8bcb22783ce800723bacaf2cfe902177828ce5b9e1c2ed9fb5c54591c5fb046a8667e7d354d452a4baac693e47d2
HEAD_REF master
PATCHES
- suitesparse.patch
- add-find-package-metis.patch
+ build_fixes.patch
)
# Copy suitesparse sources.
-message(STATUS "Copying SuiteSparse source files...")
+message(STATUS "Overwriting SuiteSparseWin source files with SuiteSparse source files...")
# Should probably remove everything but CMakeLists.txt files?
file(GLOB SUITESPARSE_SOURCE_FILES ${SOURCE_PATH}/*)
foreach(SOURCE_FILE ${SUITESPARSE_SOURCE_FILES})
file(COPY ${SOURCE_FILE} DESTINATION "${SUITESPARSEWIN_SOURCE_PATH}/SuiteSparse")
endforeach()
-message(STATUS "Copying SuiteSparse source files... done")
-message(STATUS "Removing integrated lapack and metis libs...")
+message(STATUS "Overwriting SuiteSparseWin source files with SuiteSparse source files... done")
+message(STATUS "Removing integrated lapack and metis lib...")
file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/lapack_windows)
-file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/metis)
-message(STATUS "Removing integrated lapack and metis libs... done")
-
-set(USE_VCPKG_METIS OFF)
-if("metis" IN_LIST FEATURES)
- set(USE_VCPKG_METIS ON)
- set(ADDITIONAL_BUILD_OPTIONS "-DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR}")
-endif()
+file(REMOVE_RECURSE ${SUITESPARSEWIN_SOURCE_PATH}/SuiteSparse/metis-5.1.0)
+message(STATUS "Removing integrated lapack and metis lib... done")
vcpkg_configure_cmake(
SOURCE_PATH ${SUITESPARSEWIN_SOURCE_PATH}
PREFER_NINJA
OPTIONS
-DBUILD_METIS=OFF
- -DUSE_VCPKG_METIS=${USE_VCPKG_METIS}
- ${ADDITIONAL_BUILD_OPTIONS}
+ -DUSE_VCPKG_METIS=ON
+ "-DMETIS_SOURCE_DIR=${CURRENT_INSTALLED_DIR}"
OPTIONS_DEBUG
-DSUITESPARSE_INSTALL_PREFIX="${CURRENT_PACKAGES_DIR}/debug"
OPTIONS_RELEASE
@@ -57,9 +44,13 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
-vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/suitesparse-${SUITESPARSE_VER})
+vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/suitesparse)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(INSTALL ${SOURCE_PATH}/LICENSE.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(INSTALL ${SUITESPARSEWIN_SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright_suitesparse-metis-for-windows)
+
+file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cxsparse)
+file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper_cxsparse.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/cxsparse RENAME vcpkg-cmake-wrapper.cmake)
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindCXSparse.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/cxsparse)
diff --git a/ports/suitesparse/suitesparse.patch b/ports/suitesparse/suitesparse.patch
deleted file mode 100644
index 2255565ac..000000000
--- a/ports/suitesparse/suitesparse.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3486f05..b8c2e63 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -191,68 +191,14 @@ if(WITH_CUDA)
- ENDIF(${CUDA_FOUND})
- endif()
-
--find_package(BLAS)
--find_package(LAPACK)
--if (LAPACK_FOUND AND BLAS_FOUND)
-+find_package(BLAS REQUIRED)
-+find_package(LAPACK REQUIRED)
-+if(LAPACK_FOUND AND BLAS_FOUND)
- message(STATUS "found lapack and blas config file. Linking targets lapack and blas")
- set(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
--else () # LAPACK is not found
--
--## Need to use SuiteSparse_LINKER_LAPACK_BLAS_LIBS in our subproject in case of SHARED flag is set to ON
--SET(SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS OFF CACHE BOOL "Check if you have custom LAPACK/BLAS libraries (AMD,...)")
--IF (SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS)
-- SET(SUITESPARSE_CUSTOM_BLAS_LIB "" CACHE FILE "Path to custom library file for BLAS")
-- SET(SUITESPARSE_CUSTOM_LAPACK_LIB "" CACHE FILE "Path to custom library file for LAPACK")
-- IF (NOT EXISTS "${SUITESPARSE_CUSTOM_BLAS_LIB}" OR NOT EXISTS "${SUITESPARSE_CUSTOM_LAPACK_LIB}")
-- MESSAGE("*Error*: Correctly set SUITESPARSE_CUSTOM_BLAS_LIB and SUITESPARSE_CUSTOM_LAPACK_LIB or uncheck SUITESPARSE_USE_CUSTOM_BLAS_LAPACK_LIBS")
-- ELSE()
-- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS ${SUITESPARSE_CUSTOM_BLAS_LIB} ${SUITESPARSE_CUSTOM_LAPACK_LIB})
-- ENDIF()
--ELSE()
-- IF (UNIX)
-- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS lapack blas rt)
-- ELSE()
-- IF(CMAKE_SIZEOF_VOID_P EQUAL 8) # Size in bytes!
-- set(PATH_WORD_SIZE "x64")
-- ELSE(CMAKE_SIZEOF_VOID_P EQUAL 8) # Size in bytes!
-- set(PATH_WORD_SIZE "x32")
-- ENDIF(CMAKE_SIZEOF_VOID_P EQUAL 8)
--
-- add_library(blas SHARED IMPORTED)
-- set_property(TARGET blas PROPERTY IMPORTED_LOCATION ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/libblas.dll)
-- set_property(TARGET blas PROPERTY IMPORTED_IMPLIB ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/libblas.lib)
--
-- add_library(lapack SHARED IMPORTED)
-- set_property(TARGET lapack PROPERTY IMPORTED_LOCATION ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/liblapack.dll)
-- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB ${SuiteSparseProject_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/liblapack.lib)
--
-- SET(SuiteSparse_LINKER_LAPACK_BLAS_LIBS blas lapack)
--
-- ## install lapack and blas dependencies
-- file(GLOB lapack_blas_windows_libs "${CMAKE_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/*.lib")
-- file(GLOB lapack_blas_windows_dll "${CMAKE_SOURCE_DIR}/lapack_windows/${PATH_WORD_SIZE}/*.dll")
-- if(lapack_blas_windows_dll AND lapack_blas_windows_libs)
-- set(SuiteSparse_LAPACK_BLAS_LIB_DIR "lib${LIB_POSTFIX}/lapack_blas_windows")
-- install(FILES ${lapack_blas_windows_libs}
-- ${lapack_blas_windows_dll}
-- DESTINATION ${SuiteSparse_LAPACK_BLAS_LIB_DIR}
-- )
-- endif()
-- ENDIF()
--ENDIF()
--ENDIF() # LAPACK found
--
--if(SuiteSparse_LAPACK_BLAS_LIB_DIR) # "Export" the imported targets in config.cmake manually
-- set(ExternConfig "add_library(blas SHARED IMPORTED)
-- set_property(TARGET blas PROPERTY IMPORTED_LOCATION \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/libblas.dll)
-- set_property(TARGET blas PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/libblas.lib)
--
-- add_library(lapack SHARED IMPORTED)
-- set_property(TARGET lapack PROPERTY IMPORTED_LOCATION \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.dll)
-- set_property(TARGET lapack PROPERTY IMPORTED_IMPLIB \${_SuiteSparse_PREFIX}/${SuiteSparse_LAPACK_BLAS_LIB_DIR}/liblapack.lib)")
--endif()
-+endif() # LAPACK is not found
-
--IF(BUILD_METIS)
-+IF(BUILD_METIS OR USE_VCPKG_METIS)
- set(SuiteSparse_LINKER_METIS_LIBS "metis")
- ## namespaced library target for config
- set(SuiteSparse_EXPORTED_METIS_LIBS "SuiteSparse::metis")
-@@ -311,7 +257,7 @@ configure_file(cmake/SuiteSparse-config-install.cmake.in
- ## do the EXPORT for allowing other project to easily use suitesparse with cmake
- install(EXPORT SuiteSparseTargets
- FILE
-- SuiteSparse-targets.cmake
-+ suitesparse-targets.cmake
- NAMESPACE
- SuiteSparse::
- DESTINATION
-diff --git a/SuiteSparse/CHOLMOD/Include/cholmod_blas.h b/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
-index aef3e63..907512b 100644
---- a/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
-+++ b/SuiteSparse/CHOLMOD/Include/cholmod_blas.h
-@@ -27,6 +27,7 @@
- #elif defined (__linux) || defined (MGLNX86) || defined (ARCH_GLNX86)
- #define CHOLMOD_LINUX
- #define CHOLMOD_ARCHITECTURE "Linux"
-+#define BLAS_NO_UNDERSCORE
-
- #elif defined (__APPLE__)
- #define CHOLMOD_MAC
-diff --git a/SuiteSparse/CMakeLists.txt b/SuiteSparse/CMakeLists.txt
-index c6e2834..5ef08a6 100644
---- a/SuiteSparse/CMakeLists.txt
-+++ b/SuiteSparse/CMakeLists.txt
-@@ -12,11 +12,11 @@ IF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
- ENDIF(CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_BUILD_TYPE MATCHES "Debug")
-
- # Global flags:
--IF (BUILD_METIS)
-+IF (BUILD_METIS OR USE_VCPKG_METIS)
- INCLUDE_DIRECTORIES("${METIS_SOURCE_DIR}/include")
--ELSE (BUILD_METIS)
-+ELSE ()
- ADD_DEFINITIONS(-DNPARTITION)
--ENDIF ( BUILD_METIS)
-+ENDIF ()
-
- # Disable COMPLEX numbers: disable it by default, since it causes problems in some platforms.
- SET(HAVE_COMPLEX OFF CACHE BOOL "Enables building SuiteSparse with complex numbers (disabled by default to avoid problems in some platforms)")
-diff --git a/cmake/SuiteSparse-config-install.cmake.in b/cmake/SuiteSparse-config-install.cmake.in
-index cb1f51f..12f654c 100644
---- a/cmake/SuiteSparse-config-install.cmake.in
-+++ b/cmake/SuiteSparse-config-install.cmake.in
-@@ -2,15 +2,11 @@
- get_filename_component(_SuiteSparse_SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
- get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_SELF_DIR}" PATH)
- get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
--get_filename_component(_SuiteSparse_PREFIX "${_SuiteSparse_PREFIX}" PATH)
-
--find_package(LAPACK CONFIG)
--if (NOT LAPACK_FOUND) # Load the LAPACK package with which we were built.
-- @ExternConfig@
--endif ()
-+find_package(LAPACK REQUIRED)
-
- # Load targets from the install tree.
--include(${_SuiteSparse_SELF_DIR}/SuiteSparse-targets.cmake)
-+include(${_SuiteSparse_SELF_DIR}/suitesparse-targets.cmake)
-
- # Report SuiteSparse header search locations.
- set(SuiteSparse_INCLUDE_DIRS ${_SuiteSparse_PREFIX}/include)
-@@ -31,6 +27,10 @@ set(SuiteSparse_LIBRARIES
- SuiteSparse::spqr
- @SuiteSparse_EXPORTED_METIS_LIBS@
- )
-+set(SUITESPARSE_LIBRARIES ${SuiteSparse_LIBRARIES})
-
- unset(_SuiteSparse_PREFIX)
- unset(_SuiteSparse_SELF_DIR)
-+
-+set(SUITESPARSE_FOUND TRUE)
-+set(SuiteSparse_FOUND TRUE)
diff --git a/ports/suitesparse/vcpkg-cmake-wrapper_cxsparse.cmake b/ports/suitesparse/vcpkg-cmake-wrapper_cxsparse.cmake
new file mode 100644
index 000000000..67d87e8b6
--- /dev/null
+++ b/ports/suitesparse/vcpkg-cmake-wrapper_cxsparse.cmake
@@ -0,0 +1,10 @@
+set(CXSPARSE_PREV_MODULE_PATH ${CMAKE_MODULE_PATH})
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
+
+list(REMOVE_ITEM ARGS "NO_MODULE")
+list(REMOVE_ITEM ARGS "CONFIG")
+list(REMOVE_ITEM ARGS "MODULE")
+
+_find_package(${ARGS})
+
+set(CMAKE_MODULE_PATH ${CXSPARSE_PREV_MODULE_PATH})
diff --git a/ports/tcl/CONTROL b/ports/tcl/CONTROL
index 7a74eafaf..0d451b046 100644
--- a/ports/tcl/CONTROL
+++ b/ports/tcl/CONTROL
@@ -1,5 +1,6 @@
Source: tcl
Version: core-9-0-a1
+Port-Version: 1
Homepage: https://github.com/tcltk/tcl
Description: Tcl provides a powerful platform for creating integration applications that tie together diverse applications, protocols, devices, and frameworks. When paired with the Tk toolkit, Tcl provides the fastest and most powerful way to create GUI applications that run on PCs, Unix, and Mac OS X. Tcl can also be used for a variety of web-related tasks and for creating powerful command languages for applications.
diff --git a/ports/tcl/force-shell-install.patch b/ports/tcl/force-shell-install.patch
new file mode 100644
index 000000000..0725945f7
--- /dev/null
+++ b/ports/tcl/force-shell-install.patch
@@ -0,0 +1,27 @@
+From 85842ba83b70d99f90ee3fff8c956e82d17759f2 Mon Sep 17 00:00:00 2001
+From: Marek Roszko <mark.roszko@gmail.com>
+Date: Tue, 18 Aug 2020 23:11:27 -0400
+Subject: [PATCH] Remove broken exist check for shell install
+
+---
+ win/makefile.vc | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/win/makefile.vc b/win/makefile.vc
+index f5d2f4a..6bffe32 100644
+--- a/win/makefile.vc
++++ b/win/makefile.vc
+@@ -869,10 +869,8 @@ install-binaries:
+ @$(CPY) "$(TCLLIB)" "$(BIN_INSTALL_DIR)\"
+ !endif
+ @$(CPY) "$(TCLIMPLIB)" "$(LIB_INSTALL_DIR)\"
+-!if exist($(TCLSH))
+ @echo Installing $(TCLSHNAME)
+ @$(CPY) "$(TCLSH)" "$(BIN_INSTALL_DIR)\"
+-!endif
+ @echo Installing $(TCLSTUBLIBNAME)
+ @$(CPY) "$(TCLSTUBLIB)" "$(LIB_INSTALL_DIR)\"
+
+--
+2.28.0.windows.1
+
diff --git a/ports/tcl/portfile.cmake b/ports/tcl/portfile.cmake
index 6e2757f33..7dbfe7b27 100644
--- a/ports/tcl/portfile.cmake
+++ b/ports/tcl/portfile.cmake
@@ -2,7 +2,9 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO tcltk/tcl
REF 0fa6a4e5aad821a5c34fdfa070c37c3f1ffc8c8e
- SHA512 9d7f35309fe8b1a7c116639aaea50cc01699787c7afb432389bee2b9ad56a67034c45d90c9585ef1ccf15bdabf0951cbef86257c0c6aedbd2591bbfae3e93b76)
+ SHA512 9d7f35309fe8b1a7c116639aaea50cc01699787c7afb432389bee2b9ad56a67034c45d90c9585ef1ccf15bdabf0951cbef86257c0c6aedbd2591bbfae3e93b76
+ PATCHES force-shell-install.patch
+)
if (VCPKG_TARGET_IS_WINDOWS)
if(VCPKG_TARGET_ARCHITECTURE MATCHES "x64")
@@ -47,13 +49,28 @@ if (VCPKG_TARGET_IS_WINDOWS)
INSTALLDIR=${CURRENT_PACKAGES_DIR}/debug
SCRIPT_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/tools/tcl/debug/lib/tcl9.0
OPTIONS_RELEASE
- ${TCL_BUILD_OPTS}
release
+ ${TCL_BUILD_OPTS}
INSTALLDIR=${CURRENT_PACKAGES_DIR}
SCRIPT_INSTALL_DIR=${CURRENT_PACKAGES_DIR}/tools/tcl/lib/tcl9.0
)
+
+
# Install
+ # Note: tcl shell requires it to be in a folder adjacent to the /lib/ folder, i.e. in a /bin/ folder
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL release)
+ file(GLOB_RECURSE TOOL_BIN
+ ${CURRENT_PACKAGES_DIR}/bin/*.exe
+ ${CURRENT_PACKAGES_DIR}/bin/*.dll
+ )
+ file(COPY ${TOOL_BIN} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/tcl/bin/)
+
+ # Remove .exes only after copying
+ file(GLOB_RECURSE TOOL_EXES
+ ${CURRENT_PACKAGES_DIR}/bin/*.exe
+ )
+ file(REMOVE ${TOOL_EXES})
+
file(GLOB_RECURSE TOOLS
${CURRENT_PACKAGES_DIR}/lib/dde1.4/*
${CURRENT_PACKAGES_DIR}/lib/nmake/*
@@ -76,6 +93,18 @@ if (VCPKG_TARGET_IS_WINDOWS)
)
endif()
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL debug)
+ file(GLOB_RECURSE TOOL_BIN
+ ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe
+ ${CURRENT_PACKAGES_DIR}/debug/bin/*.dll
+ )
+ file(COPY ${TOOL_BIN} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/tcl/debug/bin/)
+
+ # Remove .exes only after copying
+ file(GLOB_RECURSE EXES
+ ${CURRENT_PACKAGES_DIR}/debug/bin/*.exe
+ )
+ file(REMOVE ${EXES})
+
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/dde1.4
${CURRENT_PACKAGES_DIR}/debug/lib/nmake
${CURRENT_PACKAGES_DIR}/debug/lib/reg1.3
@@ -107,4 +136,4 @@ else()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
endif()
-file(INSTALL ${SOURCE_PATH}/license.terms DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file
+file(INSTALL ${SOURCE_PATH}/license.terms DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/theia/CONTROL b/ports/theia/CONTROL
index 2d527adcd..521468056 100644
--- a/ports/theia/CONTROL
+++ b/ports/theia/CONTROL
@@ -1,5 +1,6 @@
Source: theia
-Version: 0.8-2
+Version: 0.8
+Port-Version: 3
Build-Depends: flann, cereal, ceres[suitesparse], openimageio, glew, freeglut (!osx)
Homepage: https://github.com/sweeneychris/TheiaSfM
Description: An open source library for multiview geometry and structure from motion
diff --git a/ports/theia/fix-external-dependencies.patch b/ports/theia/fix-external-dependencies.patch
index 7a4b00961..fc6e540f3 100644
--- a/ports/theia/fix-external-dependencies.patch
+++ b/ports/theia/fix-external-dependencies.patch
@@ -1,7 +1,22 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9c1b150..5810156 100644
+index 9c1b150..1adbfed 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
+@@ -105,10 +105,10 @@ add_definitions(-DTHEIA_DATA_DIR="${CMAKE_SOURCE_DIR}/data")
+
+ # Eigen
+ set(MIN_EIGEN_VERSION 3.2.0)
+-find_package(Eigen ${MIN_EIGEN_VERSION} REQUIRED)
+-if (EIGEN_FOUND)
+- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
+-endif (EIGEN_FOUND)
++find_package(Eigen3 ${MIN_EIGEN_VERSION} REQUIRED)
++if (EIGEN3_FOUND)
++ message("-- Found Eigen version ${EIGEN3_VERSION}: ${EIGEN3_INCLUDE_DIRS}")
++endif (EIGEN3_FOUND)
+
+ # Use a larger inlining threshold for Clang, since it hobbles Eigen,
+ # resulting in an unreasonably slow version of the blas routines. The
@@ -129,70 +129,27 @@ endif ()
# GFlags. The namespace patch is borrow from Ceres Solver (see license in
@@ -299,10 +314,48 @@ index 84f3829..f88d75a 100644
-add_subdirectory(visual_sfm)
\ No newline at end of file
+add_subdirectory(visual_sfm)
+diff --git a/libraries/optimo/CMakeLists.txt b/libraries/optimo/CMakeLists.txt
+index 80f5e5f..ea57f1b 100644
+--- a/libraries/optimo/CMakeLists.txt
++++ b/libraries/optimo/CMakeLists.txt
+@@ -67,11 +67,11 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+
+ # Locations to search for Eigen
+ # Eigen
+-find_package(Eigen REQUIRED)
+-if (EIGEN_FOUND)
+- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
+-endif (EIGEN_FOUND)
+-include_directories(${EIGEN_INCLUDE_DIRS})
++find_package(Eigen3 REQUIRED)
++if (EIGEN3_FOUND)
++ message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
++endif (EIGEN3_FOUND)
++include_directories(${EIGEN3_INCLUDE_DIRS})
+
+ # Setting CXX FLAGS appropriately. The code below was inspired from
+ # Google CERES and modified for this library.
diff --git a/libraries/statx/CMakeLists.txt b/libraries/statx/CMakeLists.txt
-index 23b9e49..af236a3 100644
+index 23b9e49..c58a550 100644
--- a/libraries/statx/CMakeLists.txt
+++ b/libraries/statx/CMakeLists.txt
+@@ -72,11 +72,11 @@ message("-- Default Install prefix: ${CMAKE_INSTALL_PREFIX}")
+ option(STATX_WITH_CERES "Enables GEV parameter estimation using Ceres" ON)
+
+ # Eigen
+-find_package(Eigen REQUIRED)
+-if (EIGEN_FOUND)
+- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}")
+-endif (EIGEN_FOUND)
+-include_directories(${EIGEN_INCLUDE_DIRS})
++find_package(Eigen3 REQUIRED)
++if (EIGEN3_FOUND)
++ message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}")
++endif (EIGEN3_FOUND)
++include_directories(${EIGEN3_INCLUDE_DIRS})
+
+ # Google Flags
+ find_package(Gflags REQUIRED)
@@ -103,7 +103,11 @@ if(STATX_WITH_CERES)
endif(CERES_FOUND)
diff --git a/ports/theia/portfile.cmake b/ports/theia/portfile.cmake
index c131ac095..77b4c11c3 100644
--- a/ports/theia/portfile.cmake
+++ b/ports/theia/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
@@ -15,6 +13,7 @@ vcpkg_from_github(
file(REMOVE ${SOURCE_PATH}/cmake/FindSuiteSparse.cmake)
file(REMOVE ${SOURCE_PATH}/cmake/FindGflags.cmake)
file(REMOVE ${SOURCE_PATH}/cmake/FindGlog.cmake)
+file(REMOVE ${SOURCE_PATH}/cmake/FindEigen.cmake)
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
@@ -40,5 +39,5 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/akaze/datase
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/include/theia/libraries/spectra/doxygen)
# Handle copyright
-file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia RENAME copyright)
-file(COPY ${SOURCE_PATH}/data/camera_sensor_database_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/theia)
+file(INSTALL ${SOURCE_PATH}/license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+file(COPY ${SOURCE_PATH}/data/camera_sensor_database_license.txt DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT})
diff --git a/ports/upb/CONTROL b/ports/upb/CONTROL
index 4ca52fa03..a24ac31ab 100644
--- a/ports/upb/CONTROL
+++ b/ports/upb/CONTROL
@@ -1,4 +1,4 @@
Source: upb
-Version: 2019-10-21-2
+Version: 2020-08-19
Homepage: https://github.com/protocolbuffers/upb/
Description: μpb (often written 'upb') is a small protobuf implementation written in C.
diff --git a/ports/upb/add-cmake-install.patch b/ports/upb/add-cmake-install.patch
index ece6b8db4..cdda03407 100644
--- a/ports/upb/add-cmake-install.patch
+++ b/ports/upb/add-cmake-install.patch
@@ -1,5 +1,5 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 836c5ff..6eb8bb5 100644
+index 4dd6454..eda6a72 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ else()
@@ -11,27 +11,25 @@ index 836c5ff..6eb8bb5 100644
cmake_policy(SET CMP0048 NEW)
project(upb)
-@@ -59,7 +59,7 @@ elseif(UNIX)
- endif()
+@@ -62,6 +62,7 @@ enable_testing()
- enable_testing()
--
+ add_library(port
+ upb/port.c)
+add_library(descriptor_upbproto INTERFACE)
add_library(upb
upb/decode.c
upb/encode.c
-@@ -136,12 +136,35 @@ target_link_libraries(upb_cc_bindings INTERFACE
- descriptor_upbproto
+@@ -154,6 +155,7 @@ target_link_libraries(upb_cc_bindings INTERFACE
handlers
+ port
upb)
--add_library(upb_test
+if(ENABLE_TESTING)
-+add_executable(upb_test
+ add_library(upb_test
tests/testmain.cc
tests/test_util.h
- tests/upb_test.h)
- target_link_libraries(upb_test
+@@ -162,5 +164,28 @@ target_link_libraries(upb_test
handlers
+ port
upb)
+endif()
@@ -41,8 +39,9 @@ index 836c5ff..6eb8bb5 100644
+ DESTINATION include
+ FILES_MATCHING
+ PATTERN "*.h"
++ PATTERN "*.hpp"
+ PATTERN "*.inc"
-+ PATTERN "*.int.h" EXCLUDE
++ PATTERN "*.int.h"
+)
+target_include_directories(upb PUBLIC $<INSTALL_INTERFACE:include>)
+install(TARGETS
@@ -50,10 +49,10 @@ index 836c5ff..6eb8bb5 100644
+ upb_cc_bindings
+ upb_json
+ upb_pb
++ port
+ table
+ descriptor_upbproto
+ handlers
-+ legacy_msg_reflection
+ reflection
+ EXPORT upb-config
+)
diff --git a/ports/upb/fix-uwp.patch b/ports/upb/fix-uwp.patch
index 91c45b416..bbc8e257a 100644
--- a/ports/upb/fix-uwp.patch
+++ b/ports/upb/fix-uwp.patch
@@ -1,5 +1,5 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 577000a..759e35b 100644
+index eda6a72..386966f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -58,6 +58,10 @@ elseif(UNIX)
@@ -11,5 +11,18 @@ index 577000a..759e35b 100644
+endif()
+
enable_testing()
- add_library(descriptor_upbproto INTERFACE)
- add_library(upb
+
+ add_library(port
+diff --git a/upb/json_decode.c b/upb/json_decode.c
+index 953d238..5185ffd 100644
+--- a/upb/json_decode.c
++++ b/upb/json_decode.c
+@@ -1138,7 +1138,7 @@ static void jsondec_struct(jsondec *d, upb_msg *msg, const upb_msgdef *m) {
+ static void jsondec_wellknownvalue(jsondec *d, upb_msg *msg,
+ const upb_msgdef *m) {
+ upb_msgval val;
+- const upb_fielddef *f;
++ const upb_fielddef *f = NULL;
+ upb_msg *submsg;
+
+ switch (jsondec_peek(d)) {
diff --git a/ports/upb/portfile.cmake b/ports/upb/portfile.cmake
index 9d475670e..fdb59441f 100644
--- a/ports/upb/portfile.cmake
+++ b/ports/upb/portfile.cmake
@@ -3,8 +3,8 @@ vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO protocolbuffers/upb
- REF 9effcbcb27f0a665f9f345030188c0b291e32482
- SHA512 416ff26ec21181d53be23e94203205072152ab3a8e4b3b28d16263a601995fd2d2f8afe5d8cfbecdac8543249482287b9fe6129314f7c9a7880660f5508bb85e
+ REF 7338facddb8ce405fe7a0a52a6061a1e7c823279
+ SHA512 a2ece65612ca7c3cdc7b79994aa488623e5ce4227988611ab60724fae5dc7ba9311363bf5c73f6c74910a6b91392e0a231c28f0b2f4c8cc2c4d4328ed33bc265
HEAD_REF master
PATCHES
add-cmake-install.patch
diff --git a/ports/v8/3f8dc4b.patch b/ports/v8/3f8dc4b.patch
new file mode 100644
index 000000000..6360a1d34
--- /dev/null
+++ b/ports/v8/3f8dc4b.patch
@@ -0,0 +1,155 @@
+diff --git a/src/objects/js-number-format.cc b/src/objects/js-number-format.cc
+index ad831c5..bcd4403 100644
+--- a/src/objects/js-number-format.cc
++++ b/src/objects/js-number-format.cc
+@@ -1241,44 +1241,33 @@
+ }
+
+ namespace {
+-Maybe<icu::UnicodeString> IcuFormatNumber(
++Maybe<bool> IcuFormatNumber(
+ Isolate* isolate,
+ const icu::number::LocalizedNumberFormatter& number_format,
+- Handle<Object> numeric_obj, icu::FieldPositionIterator* fp_iter) {
++ Handle<Object> numeric_obj, icu::number::FormattedNumber* formatted) {
+ // If it is BigInt, handle it differently.
+ UErrorCode status = U_ZERO_ERROR;
+- icu::number::FormattedNumber formatted;
+ if (numeric_obj->IsBigInt()) {
+ Handle<BigInt> big_int = Handle<BigInt>::cast(numeric_obj);
+ Handle<String> big_int_string;
+ ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, big_int_string,
+ BigInt::ToString(isolate, big_int),
+- Nothing<icu::UnicodeString>());
+- formatted = number_format.formatDecimal(
++ Nothing<bool>());
++ *formatted = number_format.formatDecimal(
+ {big_int_string->ToCString().get(), big_int_string->length()}, status);
+ } else {
+ double number = numeric_obj->IsNaN()
+ ? std::numeric_limits<double>::quiet_NaN()
+ : numeric_obj->Number();
+- formatted = number_format.formatDouble(number, status);
++ *formatted = number_format.formatDouble(number, status);
+ }
+ if (U_FAILURE(status)) {
+ // This happen because of icu data trimming trim out "unit".
+ // See https://bugs.chromium.org/p/v8/issues/detail?id=8641
+- THROW_NEW_ERROR_RETURN_VALUE(isolate,
+- NewTypeError(MessageTemplate::kIcuError),
+- Nothing<icu::UnicodeString>());
++ THROW_NEW_ERROR_RETURN_VALUE(
++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<bool>());
+ }
+- if (fp_iter) {
+- formatted.getAllFieldPositions(*fp_iter, status);
+- }
+- icu::UnicodeString result = formatted.toString(status);
+- if (U_FAILURE(status)) {
+- THROW_NEW_ERROR_RETURN_VALUE(isolate,
+- NewTypeError(MessageTemplate::kIcuError),
+- Nothing<icu::UnicodeString>());
+- }
+- return Just(result);
++ return Just(true);
+ }
+
+ } // namespace
+@@ -1289,10 +1278,16 @@
+ Handle<Object> numeric_obj) {
+ DCHECK(numeric_obj->IsNumeric());
+
+- Maybe<icu::UnicodeString> maybe_format =
+- IcuFormatNumber(isolate, number_format, numeric_obj, nullptr);
++ icu::number::FormattedNumber formatted;
++ Maybe<bool> maybe_format =
++ IcuFormatNumber(isolate, number_format, numeric_obj, &formatted);
+ MAYBE_RETURN(maybe_format, Handle<String>());
+- return Intl::ToString(isolate, maybe_format.FromJust());
++ UErrorCode status = U_ZERO_ERROR;
++ icu::UnicodeString result = formatted.toString(status);
++ if (U_FAILURE(status)) {
++ THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIcuError), String);
++ }
++ return Intl::ToString(isolate, result);
+ }
+
+ namespace {
+@@ -1405,12 +1400,18 @@
+ }
+
+ namespace {
+-Maybe<int> ConstructParts(Isolate* isolate, const icu::UnicodeString& formatted,
+- icu::FieldPositionIterator* fp_iter,
++Maybe<int> ConstructParts(Isolate* isolate,
++ icu::number::FormattedNumber* formatted,
+ Handle<JSArray> result, int start_index,
+ Handle<Object> numeric_obj, bool style_is_unit) {
++ UErrorCode status = U_ZERO_ERROR;
++ icu::UnicodeString formatted_text = formatted->toString(status);
++ if (U_FAILURE(status)) {
++ THROW_NEW_ERROR_RETURN_VALUE(
++ isolate, NewTypeError(MessageTemplate::kIcuError), Nothing<int>());
++ }
+ DCHECK(numeric_obj->IsNumeric());
+- int32_t length = formatted.length();
++ int32_t length = formatted_text.length();
+ int index = start_index;
+ if (length == 0) return Just(index);
+
+@@ -1419,13 +1420,14 @@
+ // other region covers some part of the formatted string. It's possible
+ // there's another field with exactly the same begin and end as this backdrop,
+ // in which case the backdrop's field_id of -1 will give it lower priority.
+- regions.push_back(NumberFormatSpan(-1, 0, formatted.length()));
++ regions.push_back(NumberFormatSpan(-1, 0, formatted_text.length()));
+
+ {
+- icu::FieldPosition fp;
+- while (fp_iter->next(fp)) {
+- regions.push_back(NumberFormatSpan(fp.getField(), fp.getBeginIndex(),
+- fp.getEndIndex()));
++ icu::ConstrainedFieldPosition cfp;
++ cfp.constrainCategory(UFIELD_CATEGORY_NUMBER);
++ while (formatted->nextPosition(cfp, status)) {
++ regions.push_back(
++ NumberFormatSpan(cfp.getField(), cfp.getStart(), cfp.getLimit()));
+ }
+ }
+
+@@ -1447,7 +1449,7 @@
+ Handle<String> substring;
+ ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+ isolate, substring,
+- Intl::ToString(isolate, formatted, part.begin_pos, part.end_pos),
++ Intl::ToString(isolate, formatted_text, part.begin_pos, part.end_pos),
+ Nothing<int>());
+ Intl::AddElement(isolate, result, index, field_type_string, substring);
+ ++index;
+@@ -1467,20 +1469,19 @@
+ number_format->icu_number_formatter().raw();
+ CHECK_NOT_NULL(fmt);
+
+- icu::FieldPositionIterator fp_iter;
+- Maybe<icu::UnicodeString> maybe_format =
+- IcuFormatNumber(isolate, *fmt, numeric_obj, &fp_iter);
++ icu::number::FormattedNumber formatted;
++ Maybe<bool> maybe_format =
++ IcuFormatNumber(isolate, *fmt, numeric_obj, &formatted);
+ MAYBE_RETURN(maybe_format, Handle<JSArray>());
+-
+ UErrorCode status = U_ZERO_ERROR;
++
+ bool style_is_unit =
+ Style::UNIT == StyleFromSkeleton(fmt->toSkeleton(status));
+ CHECK(U_SUCCESS(status));
+
+ Handle<JSArray> result = factory->NewJSArray(0);
+- Maybe<int> maybe_format_to_parts =
+- ConstructParts(isolate, maybe_format.FromJust(), &fp_iter, result, 0,
+- numeric_obj, style_is_unit);
++ Maybe<int> maybe_format_to_parts = ConstructParts(
++ isolate, &formatted, result, 0, numeric_obj, style_is_unit);
+ MAYBE_RETURN(maybe_format_to_parts, Handle<JSArray>());
+
+ return result;
diff --git a/ports/v8/CONTROL b/ports/v8/CONTROL
new file mode 100644
index 000000000..604821739
--- /dev/null
+++ b/ports/v8/CONTROL
@@ -0,0 +1,6 @@
+Source: v8
+Version: 8.3.110.13
+Homepage: https://v8.dev
+Description: Google Chrome's JavaScript engine
+Build-Depends: icu, zlib, glib (linux), pthread (linux)
+Supports: !(arm|arm64|uwp|osx)
diff --git a/ports/v8/build.patch b/ports/v8/build.patch
new file mode 100644
index 000000000..7394c6591
--- /dev/null
+++ b/ports/v8/build.patch
@@ -0,0 +1,179 @@
+diff --git a/config/compiler/BUILD.gn b/config/compiler/BUILD.gn
+index 5a0984f54..4f301517b 100644
+--- a/config/compiler/BUILD.gn
++++ b/config/compiler/BUILD.gn
+@@ -1473,6 +1473,8 @@ config("default_warnings") {
+ # Disables.
+ "-Wno-missing-field-initializers", # "struct foo f = {0};"
+ "-Wno-unused-parameter", # Unused function parameters.
++ "-Wno-invalid-offsetof", # Use of "conditionally-supported" offsetof in c++17
++ "-Wno-range-loop-construct",
+ ]
+ }
+
+@@ -1887,11 +1889,21 @@ config("no_incompatible_pointer_warnings") {
+ # Shared settings for both "optimize" and "optimize_max" configs.
+ # IMPORTANT: On Windows "/O1" and "/O2" must go before the common flags.
+ if (is_win) {
+- common_optimize_on_cflags = [
++ common_optimize_on_cflags = []
++ if(is_clang) {
++ common_optimize_on_cflags += [
+ "/Ob2", # Both explicit and auto inlining.
++ ]
++ } else {
++ common_optimize_on_cflags += [
++ "/Ob3", # Both explicit and auto inlining.
++ ]
++ }
++ common_optimize_on_cflags += [
+ "/Oy-", # Disable omitting frame pointers, must be after /O2.
+ "/Zc:inline", # Remove unreferenced COMDAT (faster links).
+ ]
++
+ if (!is_asan) {
+ common_optimize_on_cflags += [
+ # Put data in separate COMDATs. This allows the linker
+diff --git a/config/linux/pkg-config.py b/config/linux/pkg-config.py
+index 5adf70cc3..1438c365b 100644
+--- a/config/linux/pkg-config.py
++++ b/config/linux/pkg-config.py
+@@ -41,7 +41,11 @@ from optparse import OptionParser
+ # Additionally, you can specify the option --atleast-version. This will skip
+ # the normal outputting of a dictionary and instead print true or false,
+ # depending on the return value of pkg-config for the given package.
+-
++#
++# --pkg_config_libdir=<path> allows direct override
++# of the PKG_CONFIG_LIBDIR environment library.
++#
++# --full-path-libs causes lib names to include their full path.
+
+ def SetConfigPath(options):
+ """Set the PKG_CONFIG_LIBDIR environment variable.
+@@ -105,11 +109,29 @@ def RewritePath(path, strip_prefix, sysroot):
+ return path
+
+
++flag_regex = re.compile("(-.)(.+)")
++
++def FlagReplace(matchobj):
++ if matchobj.group(1) == '-I':
++ return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8")
++ if matchobj.group(1) == '-L':
++ return matchobj.group(1) + subprocess.check_output([u'cygpath',u'-w',matchobj.group(2)]).strip().decode("utf-8")
++ if matchobj.group(1) == '-l':
++ return matchobj.group(1) + matchobj.group(2) + '.lib'
++ return matchobj.group(0)
++
++def ConvertGCCToMSVC(flags):
++ """Rewrites GCC flags into MSVC flags."""
++ if 'win32' not in sys.platform:
++ return flags
++ return [ flag_regex.sub(FlagReplace,flag) for flag in flags]
++
++
+ def main():
+ # If this is run on non-Linux platforms, just return nothing and indicate
+ # success. This allows us to "kind of emulate" a Linux build from other
+ # platforms.
+- if "linux" not in sys.platform:
++ if "linux" not in sys.platform and 'win32' not in sys.platform:
+ print("[[],[],[],[],[]]")
+ return 0
+
+@@ -122,12 +144,15 @@ def main():
+ parser.add_option('-a', action='store', dest='arch', type='string')
+ parser.add_option('--system_libdir', action='store', dest='system_libdir',
+ type='string', default='lib')
++ parser.add_option('--pkg_config_libdir', action='store', dest='pkg_config_libdir',
++ type='string')
+ parser.add_option('--atleast-version', action='store',
+ dest='atleast_version', type='string')
+ parser.add_option('--libdir', action='store_true', dest='libdir')
+ parser.add_option('--dridriverdir', action='store_true', dest='dridriverdir')
+ parser.add_option('--version-as-components', action='store_true',
+ dest='version_as_components')
++ parser.add_option('--full-path-libs', action='store_true', dest='full_path_libs')
+ (options, args) = parser.parse_args()
+
+ # Make a list of regular expressions to strip out.
+@@ -144,6 +169,10 @@ def main():
+ else:
+ prefix = ''
+
++ # Override PKG_CONFIG_LIBDIR
++ if options.pkg_config_libdir:
++ os.environ['PKG_CONFIG_LIBDIR'] = options.pkg_config_libdir
++
+ if options.atleast_version:
+ # When asking for the return value, just run pkg-config and print the return
+ # value, no need to do other work.
+@@ -203,7 +232,7 @@ def main():
+ # For now just split on spaces to get the args out. This will break if
+ # pkgconfig returns quoted things with spaces in them, but that doesn't seem
+ # to happen in practice.
+- all_flags = flag_string.strip().split(' ')
++ all_flags = ConvertGCCToMSVC(flag_string.strip().split(' '))
+
+
+ sysroot = options.sysroot
+@@ -220,7 +249,10 @@ def main():
+ continue;
+
+ if flag[:2] == '-l':
+- libs.append(RewritePath(flag[2:], prefix, sysroot))
++ library = RewritePath(flag[2:], prefix, sysroot)
++ # Skip math library on MSVC
++ if library != 'm.lib':
++ libs.append(library)
+ elif flag[:2] == '-L':
+ lib_dirs.append(RewritePath(flag[2:], prefix, sysroot))
+ elif flag[:2] == '-I':
+@@ -237,6 +269,14 @@ def main():
+ else:
+ cflags.append(flag)
+
++ if options.full_path_libs:
++ full_path_libs = []
++ for lib_dir in lib_dirs:
++ for lib in libs:
++ if os.path.isfile(lib_dir+"/"+lib):
++ full_path_libs.append(lib_dir+"/"+lib)
++ libs = full_path_libs
++
+ # Output a GN array, the first one is the cflags, the second are the libs. The
+ # JSON formatter prints GN compatible lists when everything is a list of
+ # strings.
+diff --git a/config/linux/pkg_config.gni b/config/linux/pkg_config.gni
+index 428e44ac0..a0d2175ee 100644
+--- a/config/linux/pkg_config.gni
++++ b/config/linux/pkg_config.gni
+@@ -45,6 +45,9 @@ declare_args() {
+ # in similar fashion by setting the `system_libdir` variable in the build's
+ # args.gn file to 'lib' or 'lib64' as appropriate for the target architecture.
+ system_libdir = "lib"
++
++ # Allow directly overriding the PKG_CONFIG_LIBDIR enviroment variable
++ pkg_config_libdir = ""
+ }
+
+ pkg_config_script = "//build/config/linux/pkg-config.py"
+@@ -87,6 +90,17 @@ if (host_pkg_config != "") {
+ host_pkg_config_args = pkg_config_args
+ }
+
++if (pkg_config_libdir != "") {
++ pkg_config_args += [
++ "--pkg_config_libdir",
++ pkg_config_libdir,
++ ]
++ host_pkg_config_args += [
++ "--pkg_config_libdir",
++ pkg_config_libdir,
++ ]
++}
++
+ template("pkg_config") {
+ assert(defined(invoker.packages),
+ "Variable |packages| must be defined to be a list in pkg_config.")
diff --git a/ports/v8/icu.gn b/ports/v8/icu.gn
new file mode 100644
index 000000000..60dc6b8b7
--- /dev/null
+++ b/ports/v8/icu.gn
@@ -0,0 +1,71 @@
+import("//build/config/linux/pkg_config.gni")
+
+declare_args() {
+ # Tells icu to load an external data file rather than rely on the icudata
+ # being linked directly into the binary.
+ icu_use_data_file = true
+ # If true, compile icu into a standalone static library. Currently this is
+ # only useful on Chrome OS.
+ icu_disable_thin_archive = false
+}
+
+pkg_config("system_icui18n") {
+ packages = [ "icu-i18n" ]
+ if (is_win) {
+ extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU
+ }
+}
+
+pkg_config("system_icuuc") {
+ packages = [ "icu-uc" ]
+ if (is_win) {
+ extra_args = ["--full-path-libs"] # Workaround the WinSDK having an older version of ICU
+ }
+}
+
+group("icu") {
+ public_deps = [
+ ":icui18n",
+ ":icuuc",
+ ]
+}
+
+config("icu_config") {
+ defines = [
+ "USING_SYSTEM_ICU=1",
+ ]
+ if(is_win){
+ if(!is_component_build) {
+ ldflags = ["/ignore:4099"] # needed on CI builds
+ }
+ defines += [ "UCHAR_TYPE=wchar_t" ]
+ }
+ else{
+ defines += [ "UCHAR_TYPE=uint16_t" ]
+ }
+ if (icu_use_data_file) {
+ defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE" ]
+ } else {
+ defines += [ "ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC" ]
+ }
+}
+
+source_set("icui18n") {
+ public_configs = [
+ ":icu_config",
+ ":system_icui18n"
+ ]
+}
+
+source_set("icuuc") {
+ public_configs = [
+ ":icu_config",
+ ":system_icuuc"
+ ]
+}
+
+source_set("icudata") {
+ public_configs = [
+ ":icu_config",
+ ]
+}
diff --git a/ports/v8/portfile.cmake b/ports/v8/portfile.cmake
new file mode 100644
index 000000000..e2bb45da9
--- /dev/null
+++ b/ports/v8/portfile.cmake
@@ -0,0 +1,186 @@
+
+set(pkgver "8.3.110.13")
+
+set(ENV{DEPOT_TOOLS_WIN_TOOLCHAIN} 0)
+
+get_filename_component(GIT_PATH ${GIT} DIRECTORY)
+vcpkg_find_acquire_program(PYTHON2)
+get_filename_component(PYTHON2_PATH ${PYTHON2} DIRECTORY)
+vcpkg_find_acquire_program(GN)
+get_filename_component(GN_PATH ${GN} DIRECTORY)
+vcpkg_find_acquire_program(NINJA)
+get_filename_component(NINJA_PATH ${NINJA} DIRECTORY)
+
+vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin")
+vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin")
+vcpkg_add_to_path(PREPEND "${GIT_PATH}")
+vcpkg_add_to_path(PREPEND "${PYTHON2_PATH}")
+vcpkg_add_to_path(PREPEND "${GN_PATH}")
+vcpkg_add_to_path(PREPEND "${NINJA_PATH}")
+if(WIN32)
+ vcpkg_acquire_msys(MSYS_ROOT PACKAGES pkg-config)
+ vcpkg_add_to_path("${MSYS_ROOT}/usr/bin")
+endif()
+
+set(VCPKG_KEEP_ENV_VARS PATH;DEPOT_TOOLS_WIN_TOOLCHAIN)
+
+function(v8_fetch)
+ set(oneValueArgs DESTINATION URL REF SOURCE)
+ set(multipleValuesArgs PATCHES)
+ cmake_parse_arguments(V8 "" "${oneValueArgs}" "${multipleValuesArgs}" ${ARGN})
+
+ if(NOT DEFINED V8_DESTINATION)
+ message(FATAL_ERROR "DESTINATION must be specified.")
+ endif()
+
+ if(NOT DEFINED V8_URL)
+ message(FATAL_ERROR "The git url must be specified")
+ endif()
+
+ if(NOT DEFINED V8_REF)
+ message(FATAL_ERROR "The git ref must be specified.")
+ endif()
+
+ if(EXISTS ${V8_SOURCE}/${V8_DESTINATION})
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} reset --hard
+ WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}
+ LOGNAME build-${TARGET_TRIPLET})
+ else()
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} clone --depth 1 ${V8_URL} ${V8_DESTINATION}
+ WORKING_DIRECTORY ${V8_SOURCE}
+ LOGNAME build-${TARGET_TRIPLET})
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} fetch --depth 1 origin ${V8_REF}
+ WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}
+ LOGNAME build-${TARGET_TRIPLET})
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} checkout FETCH_HEAD
+ WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}
+ LOGNAME build-${TARGET_TRIPLET})
+ endif()
+ foreach(PATCH ${V8_PATCHES})
+ vcpkg_execute_required_process(
+ COMMAND ${GIT} apply ${PATCH}
+ WORKING_DIRECTORY ${V8_SOURCE}/${V8_DESTINATION}
+ LOGNAME build-${TARGET_TRIPLET})
+ endforeach()
+endfunction()
+
+vcpkg_from_git(
+ OUT_SOURCE_PATH SOURCE_PATH
+ URL https://chromium.googlesource.com/v8/v8.git
+ REF 90904eb48b16b32f7edbf1f8a92ece561d05e738
+ PATCHES ${CURRENT_PORT_DIR}/v8.patch ${CURRENT_PORT_DIR}/3f8dc4b.patch
+)
+
+message(STATUS "Fetching submodules")
+v8_fetch(
+ DESTINATION build
+ URL https://chromium.googlesource.com/chromium/src/build.git
+ REF 26e9d485d01d6e0eb9dadd21df767a63494c8fea
+ SOURCE ${SOURCE_PATH}
+ PATCHES ${CURRENT_PORT_DIR}/build.patch)
+v8_fetch(
+ DESTINATION third_party/zlib
+ URL https://chromium.googlesource.com/chromium/src/third_party/zlib.git
+ REF 156be8c52f80cde343088b4a69a80579101b6e67
+ SOURCE ${SOURCE_PATH})
+v8_fetch(
+ DESTINATION base/trace_event/common
+ URL https://chromium.googlesource.com/chromium/src/base/trace_event/common.git
+ REF dab187b372fc17e51f5b9fad8201813d0aed5129
+ SOURCE ${SOURCE_PATH})
+v8_fetch(
+ DESTINATION third_party/googletest/src
+ URL https://chromium.googlesource.com/external/github.com/google/googletest.git
+ REF 10b1902d893ea8cc43c69541d70868f91af3646b
+ SOURCE ${SOURCE_PATH})
+v8_fetch(
+ DESTINATION third_party/jinja2
+ URL https://chromium.googlesource.com/chromium/src/third_party/jinja2.git
+ REF b41863e42637544c2941b574c7877d3e1f663e25
+ SOURCE ${SOURCE_PATH})
+v8_fetch(
+ DESTINATION third_party/markupsafe
+ URL https://chromium.googlesource.com/chromium/src/third_party/markupsafe.git
+ REF 8f45f5cfa0009d2a70589bcda0349b8cb2b72783
+ SOURCE ${SOURCE_PATH})
+
+vcpkg_execute_required_process(
+ COMMAND ${PYTHON2} build/util/lastchange.py -o build/util/LASTCHANGE
+ WORKING_DIRECTORY ${SOURCE_PATH}
+ LOGNAME build-${TARGET_TRIPLET}
+)
+
+file(MAKE_DIRECTORY "${SOURCE_PATH}/third_party/icu")
+configure_file(${CURRENT_PORT_DIR}/zlib.gn ${SOURCE_PATH}/third_party/zlib/BUILD.gn COPYONLY)
+configure_file(${CURRENT_PORT_DIR}/icu.gn ${SOURCE_PATH}/third_party/icu/BUILD.gn COPYONLY)
+
+if(UNIX)
+ set(UNIX_CURRENT_INSTALLED_DIR ${CURRENT_INSTALLED_DIR})
+ set(LIBS "-ldl -lpthread")
+ set(REQUIRES ", gmodule-2.0, gobject-2.0, gthread-2.0")
+elseif(WIN32)
+ execute_process(COMMAND cygpath "${CURRENT_INSTALLED_DIR}" OUTPUT_VARIABLE UNIX_CURRENT_INSTALLED_DIR)
+ string(STRIP ${UNIX_CURRENT_INSTALLED_DIR} UNIX_CURRENT_INSTALLED_DIR)
+ set(LIBS "-lWinmm -lDbgHelp")
+endif()
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(is_component_build true)
+ set(v8_monolithic false)
+ set(v8_use_external_startup_data true)
+ set(targets :v8_libbase :v8_libplatform :v8)
+else()
+ set(is_component_build false)
+ set(v8_monolithic true)
+ set(v8_use_external_startup_data false)
+ set(targets :v8_monolith)
+endif()
+
+message(STATUS "Generating v8 build files. Please wait...")
+
+vcpkg_configure_gn(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS "is_component_build=${is_component_build} target_cpu=\"${VCPKG_TARGET_ARCHITECTURE}\" v8_monolithic=${v8_monolithic} v8_use_external_startup_data=${v8_use_external_startup_data} use_sysroot=false is_clang=false use_custom_libcxx=false v8_enable_verify_heap=false icu_use_data_file=false"
+ OPTIONS_DEBUG "is_debug=true enable_iterator_debugging=true pkg_config_libdir=\"${UNIX_CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig\""
+ OPTIONS_RELEASE "is_debug=false enable_iterator_debugging=false pkg_config_libdir=\"${UNIX_CURRENT_INSTALLED_DIR}/lib/pkgconfig\""
+)
+
+message(STATUS "Building v8. Please wait...")
+
+vcpkg_install_gn(
+ SOURCE_PATH ${SOURCE_PATH}
+ TARGETS ${targets}
+)
+
+set(CFLAGS "-DV8_COMPRESS_POINTERS")
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(CFLAGS "${CFLAGS} -DV8_31BIT_SMIS_ON_64BIT_ARCH")
+endif()
+file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h")
+if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+ set(PREFIX ${CURRENT_PACKAGES_DIR})
+ configure_file(${CURRENT_PORT_DIR}/v8.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8.pc @ONLY)
+ configure_file(${CURRENT_PORT_DIR}/v8_libbase.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_libbase.pc @ONLY)
+ configure_file(${CURRENT_PORT_DIR}/v8_libplatform.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_libplatform.pc @ONLY)
+ set(PREFIX ${CURRENT_PACKAGES_DIR}/debug)
+ configure_file(${CURRENT_PORT_DIR}/v8.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8.pc @ONLY)
+ configure_file(${CURRENT_PORT_DIR}/v8_libbase.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_libbase.pc @ONLY)
+ configure_file(${CURRENT_PORT_DIR}/v8_libplatform.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_libplatform.pc @ONLY)
+else()
+ set(PREFIX ${CURRENT_PACKAGES_DIR})
+ configure_file(${CURRENT_PORT_DIR}/v8_monolith.pc.in ${CURRENT_PACKAGES_DIR}/lib/pkgconfig/v8_monolith.pc @ONLY)
+ set(PREFIX ${CURRENT_PACKAGES_DIR}/debug)
+ configure_file(${CURRENT_PORT_DIR}/v8_monolith.pc.in ${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/v8_monolith.pc @ONLY)
+endif()
+
+vcpkg_copy_pdbs()
+
+# v8 libraries are listed as SYSTEM_LIBRARIES because the pc files reference each other.
+vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES m dl pthread Winmm DbgHelp v8_libbase v8_libplatform v8)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/v8/v8.patch b/ports/v8/v8.patch
new file mode 100644
index 000000000..8a58a50b9
--- /dev/null
+++ b/ports/v8/v8.patch
@@ -0,0 +1,89 @@
+diff --git a/src/compiler/node-cache.h b/src/compiler/node-cache.h
+index 935e5778e3..d5dae22512 100644
+--- a/src/compiler/node-cache.h
++++ b/src/compiler/node-cache.h
+@@ -29,7 +29,7 @@ class Node;
+ // nodes such as constants, parameters, etc.
+ template <typename Key, typename Hash = base::hash<Key>,
+ typename Pred = std::equal_to<Key> >
+-class EXPORT_TEMPLATE_DECLARE(V8_EXPORT_PRIVATE) NodeCache final {
++class V8_EXPORT_PRIVATE NodeCache final {
+ public:
+ explicit NodeCache(Zone* zone) : map_(zone) {}
+ ~NodeCache() = default;
+diff --git a/src/objects/feedback-vector.cc b/src/objects/feedback-vector.cc
+index 929b312f22..7beff3395d 100644
+--- a/src/objects/feedback-vector.cc
++++ b/src/objects/feedback-vector.cc
+@@ -114,9 +114,9 @@ Handle<FeedbackMetadata> FeedbackMetadata::New(LocalIsolate* isolate,
+ return metadata;
+ }
+
+-template Handle<FeedbackMetadata> FeedbackMetadata::New(
++template V8_EXPORT Handle<FeedbackMetadata> FeedbackMetadata::New(
+ Isolate* isolate, const FeedbackVectorSpec* spec);
+-template Handle<FeedbackMetadata> FeedbackMetadata::New(
++template V8_EXPORT Handle<FeedbackMetadata> FeedbackMetadata::New(
+ OffThreadIsolate* isolate, const FeedbackVectorSpec* spec);
+
+ bool FeedbackMetadata::SpecDiffersFrom(
+diff --git a/src/objects/ordered-hash-table.h b/src/objects/ordered-hash-table.h
+index b587960432..e80b5757e4 100644
+--- a/src/objects/ordered-hash-table.h
++++ b/src/objects/ordered-hash-table.h
+@@ -7,7 +7,11 @@
+
+ #include "src/base/export-template.h"
+ #include "src/common/globals.h"
++#if defined(_M_IX86) && defined(_MSC_VER)
++#include "src/objects/fixed-array-inl.h"
++#else
+ #include "src/objects/fixed-array.h"
++#endif
+ #include "src/objects/js-objects.h"
+ #include "src/objects/smi.h"
+ #include "src/roots/roots.h"
+diff --git a/src/snapshot/serializer-common.cc b/src/snapshot/serializer-common.cc
+index 9218d4eaa9..7b226de2f9 100644
+--- a/src/snapshot/serializer-common.cc
++++ b/src/snapshot/serializer-common.cc
+@@ -8,7 +8,7 @@
+ #include "src/objects/foreign-inl.h"
+ #include "src/objects/objects-inl.h"
+ #include "src/objects/slots.h"
+-#include "third_party/zlib/zlib.h"
++#include "zlib.h"
+
+ namespace v8 {
+ namespace internal {
+diff --git a/test/cctest/BUILD.gn b/test/cctest/BUILD.gn
+index 89fe36f65b..588950228b 100644
+--- a/test/cctest/BUILD.gn
++++ b/test/cctest/BUILD.gn
+@@ -421,6 +421,9 @@ v8_source_set("cctest_sources") {
+ # C4309: 'static_cast': truncation of constant value
+ cflags += [ "/wd4309" ]
+
++ # Buffer overrun warning... intended?
++ cflags += [ "/wd4789" ]
++
+ # MSVS wants this for gay-{precision,shortest}.cc.
+ cflags += [ "/bigobj" ]
+
+diff --git a/tools/v8windbg/BUILD.gn b/tools/v8windbg/BUILD.gn
+index 10d06a127f..a269b81136 100644
+--- a/tools/v8windbg/BUILD.gn
++++ b/tools/v8windbg/BUILD.gn
+@@ -8,6 +8,12 @@ config("v8windbg_config") {
+ # Required for successful compilation of SDK header file DbgModel.h.
+ cflags_cc = [ "/Zc:twoPhase-" ]
+
++ if(is_win && !is_clang){
++ # Avoid "The contents of <optional> are available only with C++17 or later."
++ # warning from MSVC
++ cflags_cc += [ "/std:c++latest" ]
++ }
++
+ include_dirs = [ "../.." ]
+ }
+
diff --git a/ports/v8/v8.pc.in b/ports/v8/v8.pc.in
new file mode 100644
index 000000000..5f5721725
--- /dev/null
+++ b/ports/v8/v8.pc.in
@@ -0,0 +1,11 @@
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine
+Version: @pkgver@
+Requires: zlib, icu-uc, icu-i18n, v8_libbase = @pkgver@
+Libs: -L${libdir} -lv8
+Cflags: -I${includedir} @CFLAGS@
diff --git a/ports/v8/v8_libbase.pc.in b/ports/v8/v8_libbase.pc.in
new file mode 100644
index 000000000..ad472abf9
--- /dev/null
+++ b/ports/v8/v8_libbase.pc.in
@@ -0,0 +1,10 @@
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine - Base library
+Version: @pkgver@
+Libs: -L${libdir} -lv8_libbase
+Cflags: -I${includedir} @CFLAGS@
diff --git a/ports/v8/v8_libplatform.pc.in b/ports/v8/v8_libplatform.pc.in
new file mode 100644
index 000000000..19c54ba79
--- /dev/null
+++ b/ports/v8/v8_libplatform.pc.in
@@ -0,0 +1,10 @@
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine - Platform library
+Version: @pkgver@
+Libs: -L${libdir} -lv8_libplatform
+Cflags: -I${includedir} @CFLAGS@
diff --git a/ports/v8/v8_monolith.pc.in b/ports/v8/v8_monolith.pc.in
new file mode 100644
index 000000000..b23c661e8
--- /dev/null
+++ b/ports/v8/v8_monolith.pc.in
@@ -0,0 +1,11 @@
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: v8
+Description: V8 JavaScript Engine
+Version: @pkgver@
+Requires: zlib, icu-uc, icu-i18n @REQUIRES@
+Libs: -L${libdir} -lv8_monolith @LIBS@
+Cflags: -I${includedir} @CFLAGS@
diff --git a/ports/v8/zlib.gn b/ports/v8/zlib.gn
new file mode 100644
index 000000000..570d0e22a
--- /dev/null
+++ b/ports/v8/zlib.gn
@@ -0,0 +1,21 @@
+import("//build/config/linux/pkg_config.gni")
+
+pkg_config("system_zlib") {
+ packages = [ "zlib" ]
+ defines = [ "USE_SYSTEM_ZLIB=1" ]
+}
+
+config("zlib_config") {
+ if(is_win && !is_component_build) {
+ ldflags = ["/ignore:4099"] # needed on VCPKG CI builds
+ }
+ configs = [
+ ":system_zlib",
+ ]
+}
+
+source_set("zlib") {
+ public_configs = [
+ ":system_zlib",
+ ]
+}
diff --git a/ports/vlfeat/CMakeLists.txt b/ports/vlfeat/CMakeLists.txt
new file mode 100644
index 000000000..39ecfbc6b
--- /dev/null
+++ b/ports/vlfeat/CMakeLists.txt
@@ -0,0 +1,159 @@
+cmake_minimum_required (VERSION 3.10)
+project (vlfeat)
+
+set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed")
+set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed")
+set(INSTALL_INCLUDE_DIR "include/vlfeat" CACHE PATH "Path where headers will be installed")
+set(INSTALL_CMAKE_DIR "share/vlfeat" CACHE PATH "Path where cmake configs will be installed")
+
+# Make relative paths absolute (needed later on)
+set(RELATIVE_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR})
+foreach(p LIB BIN INCLUDE CMAKE)
+ set(var INSTALL_${p}_DIR)
+ if(NOT IS_ABSOLUTE "${${var}}")
+ set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
+ endif()
+endforeach()
+
+# make sure that the default is a RELEASE
+set(default_build_type "Release")
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ message(STATUS "Setting build type to '${default_build_type}' as none was specified.")
+ set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE
+ STRING "Choose the type of build." FORCE)
+ set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS
+ "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
+endif()
+
+if(ENABLE_OPENMP)
+ find_package(OpenMP REQUIRED)
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+endif()
+
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
+ add_definitions(-D__LITTLE_ENDIAN__)
+ add_definitions(/Zp8)
+ add_definitions(/wd4146)
+ if(CMAKE_C_FLAGS MATCHES "/W[0-4]")
+ string(REGEX REPLACE "/W[0-4]" "/W1" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+ endif()
+endif()
+
+if(CMAKE_COMPILER_IS_GNUCC)
+ add_definitions(-std=c99)
+ add_definitions(-Wno-unused-function)
+ add_definitions(-Wno-long-long)
+ add_definitions(-Wno-variadic-macros)
+endif()
+
+if(USE_SSE)
+ add_definitions(-D__SSE2__)
+ set(SSE2_VL_C_FILES "vl/mathop_sse2.c" "vl/imopv_sse2.c")
+ set(SSE2_VL_H_FILES "vl/mathop_sse2.h" "vl/imopv_sse2.h")
+else()
+ add_definitions(-DVL_DISABLE_SSE2)
+endif()
+
+if(USE_AVX)
+ set(AVX_VL_C_FILES "vl/mathop_avx.c")
+ set(AVX_VL_H_FILES "vl/mathop_avx.h")
+else()
+ add_definitions(-DVL_DISABLE_AVX)
+endif()
+
+
+set (C_SOURCES
+ vl/aib.c
+ vl/array.c
+ vl/covdet.c
+ vl/dsift.c
+ vl/fisher.c
+ vl/generic.c
+ vl/getopt_long.c
+ vl/gmm.c
+ vl/hikmeans.c
+ vl/hog.c
+ vl/homkermap.c
+ vl/host.c
+ vl/ikmeans.c
+ vl/imopv.c
+ vl/kdtree.c
+ vl/kmeans.c
+ vl/lbp.c
+ vl/liop.c
+ vl/mathop.c
+ ${AVX_VL_C_FILES}
+ ${SSE2_VL_C_FILES}
+ vl/mser.c
+ vl/pgm.c
+ vl/quickshift.c
+ vl/random.c
+ vl/rodrigues.c
+ vl/scalespace.c
+ vl/sift.c
+ vl/slic.c
+ vl/stringop.c
+ vl/svm.c
+ vl/svmdataset.c
+ vl/vlad.c
+)
+
+set (H_SOURCES
+ vl/aib.h
+ vl/array.h
+ vl/covdet.h
+ vl/dsift.h
+ vl/fisher.h
+ vl/generic.h
+ vl/getopt_long.h
+ vl/gmm.h
+ vl/heap-def.h
+ vl/hikmeans.h
+ vl/hog.h
+ vl/homkermap.h
+ vl/host.h
+ vl/ikmeans.h
+ vl/imopv.h
+ vl/kdtree.h
+ vl/kmeans.h
+ vl/lbp.h
+ vl/liop.h
+ vl/mathop.h
+ ${AVX_VL_H_FILES}
+ ${SSE2_VL_H_FILES}
+ vl/mser.h
+ vl/pgm.h
+ vl/qsort-def.h
+ vl/quickshift.h
+ vl/random.h
+ vl/rodrigues.h
+ vl/scalespace.h
+ vl/shuffle-def.h
+ vl/sift.h
+ vl/slic.h
+ vl/stringop.h
+ vl/svm.h
+ vl/svmdataset.h
+ vl/vlad.h
+)
+
+add_library(vl ${C_SOURCES} ${H_SOURCES})
+set_property(TARGET vl PROPERTY POSITION_INDEPENDENT_CODE ON)
+target_compile_definitions(vl PRIVATE -DVL_BUILD_DLL)
+target_include_directories(vl PUBLIC $<INSTALL_INTERFACE:${RELATIVE_INSTALL_INCLUDE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/vl>)
+set_target_properties(vl PROPERTIES PUBLIC_HEADER "${H_SOURCES}")
+
+install(TARGETS vl EXPORT vlfeatTargets
+ RUNTIME DESTINATION "${INSTALL_BIN_DIR}"
+ LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
+ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
+ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}"
+ COMPONENT dev
+)
+
+install(EXPORT vlfeatTargets
+ FILE vlfeatConfig.cmake
+ NAMESPACE unofficial::vlfeat::
+ DESTINATION "${INSTALL_CMAKE_DIR}"
+)
diff --git a/ports/vlfeat/CONTROL b/ports/vlfeat/CONTROL
new file mode 100644
index 000000000..d700ed845
--- /dev/null
+++ b/ports/vlfeat/CONTROL
@@ -0,0 +1,4 @@
+Source: vlfeat
+Version: 2020-07-10
+Homepage: https://www.vlfeat.org
+Description: An open library of computer vision algorithms
diff --git a/ports/vlfeat/expose_missing_symbols.patch b/ports/vlfeat/expose_missing_symbols.patch
new file mode 100644
index 000000000..02e9ce0a6
--- /dev/null
+++ b/ports/vlfeat/expose_missing_symbols.patch
@@ -0,0 +1,79 @@
+diff --git a/vl/generic.c b/vl/generic.c
+index c6f84a9..8617ed2 100644
+--- a/vl/generic.c
++++ b/vl/generic.c
+@@ -1513,13 +1513,13 @@ vl_thread_specific_state_delete (VlThreadState * self)
+ */
+
+ #if (defined(VL_OS_LINUX) || defined(VL_OS_MACOSX)) && defined(VL_COMPILER_GNUC)
+-static void vl_constructor () __attribute__ ((constructor)) ;
+-static void vl_destructor () __attribute__ ((destructor)) ;
++//static void vl_constructor () __attribute__ ((constructor)) ;
++//static void vl_destructor () __attribute__ ((destructor)) ;
+ #endif
+
+ #if defined(VL_OS_WIN)
+-static void vl_constructor () ;
+-static void vl_destructor () ;
++//static void vl_constructor () ;
++//static void vl_destructor () ;
+
+ BOOL WINAPI DllMain(
+ HINSTANCE hinstDLL, // handle to DLL module
+@@ -1563,7 +1563,7 @@ BOOL WINAPI DllMain(
+ /* ---------------------------------------------------------------- */
+
+ /** @internal @brief Initialize VLFeat state */
+-static void
++void
+ vl_constructor (void)
+ {
+ VlState * state ;
+@@ -1637,7 +1637,7 @@ vl_constructor (void)
+ }
+
+ /** @internal @brief Destruct VLFeat */
+-static void
++void
+ vl_destructor ()
+ {
+ VlState * state ;
+diff --git a/vl/generic.h b/vl/generic.h
+index 4ef87f2..30a974e 100644
+--- a/vl/generic.h
++++ b/vl/generic.h
+@@ -206,5 +206,7 @@ VL_EXPORT double vl_toc (void) ;
+ VL_EXPORT double vl_get_cpu_time (void) ;
+ /** @} */
+
++VL_EXPORT void vl_constructor();
++VL_EXPORT void vl_destructor();
+ /* VL_GENERIC_H */
+ #endif
+diff --git a/vl/sift.c b/vl/sift.c
+index 03963fe..6477a81 100644
+--- a/vl/sift.c
++++ b/vl/sift.c
+@@ -1443,7 +1443,7 @@ vl_sift_detect (VlSiftFilt * f)
+ ** @remark The minimum octave size is 2x2xS.
+ **/
+
+-static void
++void
+ update_gradient (VlSiftFilt *f)
+ {
+ int s_min = f->s_min ;
+diff --git a/vl/sift.h b/vl/sift.h
+index 50e03f4..f9558ad 100644
+--- a/vl/sift.h
++++ b/vl/sift.h
+@@ -138,7 +138,8 @@ void vl_sift_keypoint_init (VlSiftFilt const *f,
+ double y,
+ double sigma) ;
+ /** @} */
+-
++VL_EXPORT
++void update_gradient(VlSiftFilt* f);
+ /** @name Retrieve data and parameters
+ ** @{
+ **/
diff --git a/ports/vlfeat/portfile.cmake b/ports/vlfeat/portfile.cmake
new file mode 100644
index 000000000..a075bdef7
--- /dev/null
+++ b/ports/vlfeat/portfile.cmake
@@ -0,0 +1,33 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO vlfeat/vlfeat
+ REF 1b9075fc42fe54b42f0e937f8b9a230d8e2c7701
+ SHA512 6d317a1a9496ccac80244553d555fe060b150ccc7ee397a353b64f3a8451f24d1f03d8c00ed04cd9fc2dc066a5c5089b03695c614cb43ffa09be363660278255
+ PATCHES
+ expose_missing_symbols.patch
+)
+
+set(USE_SSE ON)
+set(USE_AVX OFF) # feature is broken, so it's always off anyway
+
+if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
+ set(USE_SSE OFF)
+ set(USE_AVX OFF)
+endif()
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA
+ OPTIONS
+ -DUSE_SSE=${USE_SSE}
+ -DUSE_AVX=${USE_AVX}
+)
+
+vcpkg_install_cmake()
+vcpkg_fixup_cmake_targets()
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
+
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/vtk/CONTROL b/ports/vtk/CONTROL
index b542a5c47..edbe3cc93 100644
--- a/ports/vtk/CONTROL
+++ b/ports/vtk/CONTROL
@@ -1,6 +1,6 @@
Source: vtk
Version: 9.0.1
-Port-Version: 1
+Port-Version: 2
Description: Software system for 3D computer graphics, image processing, and visualization
Homepage: https://github.com/Kitware/VTK
Build-Depends: zlib, libpng, tiff, libxml2, jsoncpp, glew, freetype, expat, hdf5[core], libjpeg-turbo, proj4, lz4, liblzma, libtheora, eigen3, double-conversion, pugixml, libharu[notiffsymbols], sqlite3, netcdf-c, utfcpp, libogg, pegtl-2
diff --git a/ports/vtk/FindExpat.patch b/ports/vtk/FindExpat.patch
index a0e706b44..a9fdc46bd 100644
--- a/ports/vtk/FindExpat.patch
+++ b/ports/vtk/FindExpat.patch
@@ -1,13 +1,48 @@
-diff --git a/CMake/FindEXPAT.cmake b/CMake/FindEXPAT.cmake
-index 9d4c080..9e14e7d 100644
---- a/CMake/FindEXPAT.cmake
-+++ b/CMake/FindEXPAT.cmake
-@@ -40,7 +40,7 @@ pkg_check_modules(PC_EXPAT QUIET expat)
- find_path(EXPAT_INCLUDE_DIR NAMES expat.h HINTS ${PC_EXPAT_INCLUDE_DIRS})
-
- # Look for the library.
--find_library(EXPAT_LIBRARY NAMES expat libexpat HINTS ${PC_EXPAT_LIBRARY_DIRS})
-+find_library(EXPAT_LIBRARY NAMES expat libexpat libexpatMD HINTS ${PC_EXPAT_LIBRARY_DIRS})
-
- if (EXPAT_INCLUDE_DIR AND EXISTS "${EXPAT_INCLUDE_DIR}/expat.h")
- file(STRINGS "${EXPAT_INCLUDE_DIR}/expat.h" expat_version_str
+diff --git a/CMake/FindEXPAT.cmake b/CMake/FindEXPAT.cmake
+index 45d923764..0ebcd3c83 100644
+--- a/CMake/FindEXPAT.cmake
++++ b/CMake/FindEXPAT.cmake
+@@ -73,15 +73,37 @@ if(EXPAT_FOUND)
+
+ if(NOT TARGET EXPAT::EXPAT)
+ include(vtkDetectLibraryType)
+- vtk_detect_library_type(expat_library_type
+- PATH "${EXPAT_LIBRARY}")
++ if(EXPAT_LIBRARY_RELEASE)
++ vtk_detect_library_type(expat_library_type
++ PATH "${EXPAT_LIBRARY_RELEASE}")
++ elseif(EXPAT_LIBRARY_DEBUG)
++ vtk_detect_library_type(expat_library_type
++ PATH "${EXPAT_LIBRARY_RELEASE}")
++ else()
++ vtk_detect_library_type(expat_library_type
++ PATH "${EXPAT_LIBRARY}")
++ endif()
++
+ add_library(EXPAT::EXPAT "${expat_library_type}" IMPORTED)
+ unset(expat_library_type)
+ set_target_properties(EXPAT::EXPAT PROPERTIES
+- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+- IMPORTED_LOCATION "${EXPAT_LIBRARY}"
+- IMPORTED_IMPLIB "${EXPAT_LIBRARY}"
+- INTERFACE_INCLUDE_DIRECTORIES "${EXPAT_INCLUDE_DIRS}")
++ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
++ INTERFACE_INCLUDE_DIRECTORIES "${EXPAT_INCLUDE_DIRS}")
++ if(EXPAT_LIBRARY_RELEASE)
++ set_target_properties(EXPAT::EXPAT PROPERTIES
++ IMPORTED_LOCATION_RELEASE "${EXPAT_LIBRARY_RELEASE}"
++ IMPORTED_IMPLIB_RELEASE "${EXPAT_LIBRARY_RELEASE}")
++ endif()
++ if(EXPAT_LIBRARY_DEBUG)
++ set_target_properties(EXPAT::EXPAT PROPERTIES
++ IMPORTED_LOCATION_DEBUG "${EXPAT_LIBRARY_DEBUG}"
++ IMPORTED_IMPLIB_DEBUG "${EXPAT_LIBRARY_DEBUG}")
++ endif()
++ if(EXPAT_LIBRARY_RELEASE OR EXPAT_LIBRARY_DEBUG AND NOT (EXPAT_LIBRARY_RELEASE AND EXPAT_LIBRARY_DEBUG))
++ set_target_properties(EXPAT::EXPAT PROPERTIES
++ IMPORTED_LOCATION "${EXPAT_LIBRARY}"
++ IMPORTED_IMPLIB "${EXPAT_LIBRARY}")
++ endif()
+ endif()
+ endif()
+
diff --git a/ports/vtk/portfile.cmake b/ports/vtk/portfile.cmake
index d657f241f..d2dc3e2c7 100644
--- a/ports/vtk/portfile.cmake
+++ b/ports/vtk/portfile.cmake
@@ -68,6 +68,13 @@ endif()
if("mpi" IN_LIST FEATURES)
list(APPEND ADDITIONAL_OPTIONS
-DVTK_GROUP_ENABLE_MPI=YES
+ -DVTK_USE_MPI=YES
+ )
+endif()
+
+if("mpi" IN_LIST FEATURES AND "python" IN_LIST FEATURES)
+ list(APPEND ADDITIONAL_OPTIONS
+ -DVTK_MODULE_USE_EXTERNAL_VTK_mpi4py=OFF
)
endif()
@@ -120,7 +127,7 @@ vcpkg_from_github(
python_debug.patch
fix-using-hdf5.patch
# Last patch TODO: Patch out internal loguru
- FindExpat.patch
+ FindExpat.patch # The find_library calls are taken care of by vcpkg-cmake-wrapper.cmake of expat
)
# =============================================================================
diff --git a/ports/wt/0003-disable-boost-autolink.patch b/ports/wt/0003-disable-boost-autolink.patch
deleted file mode 100644
index 9f7069b6e..000000000
--- a/ports/wt/0003-disable-boost-autolink.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/cmake/WtFindBoost.txt b/cmake/WtFindBoost.txt
-index e86fd7e..a017f6f 100644
---- a/cmake/WtFindBoost.txt
-+++ b/cmake/WtFindBoost.txt
-@@ -122,7 +122,7 @@ IF (Boost_FOUND)
- SET(BOOST_WTHTTP_MT_FOUND TRUE)
- SET(BOOST_WTHTTP_FOUND TRUE)
-
-- IF(MSVC AND Boost_MAJOR_VERSION EQUAL 1 AND Boost_MINOR_VERSION LESS 70)
-+ IF(0)
- # use autolink
- SET(BOOST_WT_LIBRARIES "")
- SET(BOOST_WTHTTP_LIBRARIES "")
diff --git a/ports/wt/0004-link-ssl.patch b/ports/wt/0004-link-ssl.patch
deleted file mode 100644
index c9efc480b..000000000
--- a/ports/wt/0004-link-ssl.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bd3b506..560ffb2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -546,6 +546,12 @@ IF(ENABLE_HARU AND HARU_FOUND)
- SET(WT_HAS_WPDFIMAGE true)
- ENDIF(ENABLE_HARU AND HARU_FOUND)
-
-+if (WIN32)
-+ add_definitions(-DWT_WIN32)
-+endif()
-+find_package(OpenSSL REQUIRED)
-+set(OPENSSL_FOUND OpenSSL_FOUND)
-+set(OPENSSL_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
- IF(ENABLE_SSL AND OPENSSL_FOUND)
- SET(HAVE_SSL ON)
- SET(WT_WITH_SSL true)
-diff --git a/src/isapi/IsapiRequest.h b/src/isapi/IsapiRequest.h
-index 6c788e2..3f8d213 100644
---- a/src/isapi/IsapiRequest.h
-+++ b/src/isapi/IsapiRequest.h
-@@ -1,5 +1,8 @@
- #include "WebRequest.h"
- #include <sstream>
-+#ifdef _WIN32
-+#include <winsock2.h>
-+#endif
- #include <httpext.h>
-
- namespace Wt {
diff --git a/ports/wt/0006-GraphicsMagick.patch b/ports/wt/0006-GraphicsMagick.patch
new file mode 100644
index 000000000..2f1b50a60
--- /dev/null
+++ b/ports/wt/0006-GraphicsMagick.patch
@@ -0,0 +1,29 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5012cfd1b..95f812685 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -338,7 +338,7 @@ ELSE (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
+ ENDIF (CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
+
+ IF (${WT_WRASTERIMAGE_IMPLEMENTATION} STREQUAL "GraphicsMagick")
+- IF (NOT GM_FOUND)
++ IF (0)
+ MESSAGE(FATAL_ERROR "WT_WRASTERIMAGE_IMPLEMENTATION set to GraphicsMagick but GM is not found. Indicate the location of your graphicsmagick library using -DGM_PREFIX=...")
+ ENDIF (NOT GM_FOUND)
+ SET(WT_HAS_WRASTERIMAGE true)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 78d82ee53..01ac5f42a 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -595,8 +595,9 @@ ELSE(HAVE_HARU)
+ ENDIF(HAVE_HARU)
+
+ IF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick")
+- TARGET_LINK_LIBRARIES(wt PRIVATE ${GM_LIBRARIES})
+- INCLUDE_DIRECTORIES(${GM_INCLUDE_DIRS})
++ find_package(unofficial-graphicsmagick REQUIRED)
++ TARGET_LINK_LIBRARIES(wt PRIVATE unofficial::graphicsmagick::graphicsmagick)
++ # INCLUDE_DIRECTORIES(${GM_INCLUDE_DIRS})
+ ADD_DEFINITIONS(-DHAVE_GRAPHICSMAGICK)
+ ELSEIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "skia")
+ TARGET_LINK_LIBRARIES(wt PRIVATE ${SKIA_LIBRARIES})
diff --git a/ports/wt/CONTROL b/ports/wt/CONTROL
index 6a8b959a6..c8ea4d02c 100644
--- a/ports/wt/CONTROL
+++ b/ports/wt/CONTROL
@@ -1,5 +1,29 @@
Source: wt
-Version: 4.2.2
+Version: 4.4.0
Homepage: https://github.com/emweb/wt
Description: Wt is a C++ library for developing web applications
-Build-Depends: openssl, sqlite3, libpq, pango, glew, boost-date-time, boost-regex, boost-program-options, boost-signals, boost-system, boost-filesystem, boost-thread, boost-random, boost-multi-index, boost-signals2, boost-asio, boost-ublas, boost-conversion, boost-array, boost-smart-ptr, boost-tuple, boost-algorithm, boost-logic, boost-interprocess
+Build-Depends: zlib, libpng, pango (!windows), harfbuzz (!windows), libharu, glew, boost-algorithm, boost-array, boost-asio, boost-bind, boost-config, boost-container-hash, boost-filesystem, boost-fusion, boost-interprocess, boost-lexical-cast, boost-logic, boost-math, boost-multi-index, boost-optional, boost-phoenix, boost-pool, boost-program-options, boost-range, boost-serialization, boost-smart-ptr, boost-spirit, boost-system, boost-thread, boost-tokenizer, boost-tuple, boost-ublas, boost-variant
+Default-Features: openssl
+
+Feature: dbo
+Description: Wt::Dbo
+
+Feature: postgresql
+Description: Wt::Dbo PostgreSQL backend
+Build-Depends: libpq, wt[dbo]
+
+Feature: sqlite3
+Description: Wt::Dbo Sqlite 3 backend
+Build-Depends: sqlite3, wt[dbo]
+
+Feature: sqlserver
+Description: Wt::Dbo MS SQL Server backend
+Build-Depends: unixodbc (!windows), wt[dbo]
+
+Feature: openssl
+Description: TLS support
+Build-Depends: openssl
+
+Feature: graphicsmagick
+Description: WRasterImage support on non-Windows based on GraphicsMagick
+Build-Depends: graphicsmagick
diff --git a/ports/wt/portfile.cmake b/ports/wt/portfile.cmake
index 4e8eed349..f32477221 100644
--- a/ports/wt/portfile.cmake
+++ b/ports/wt/portfile.cmake
@@ -1,39 +1,69 @@
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO emweb/wt
- REF 3ade528163850b3fd90fac2a31f5e0699342a1a5 # 4.2.2
- SHA512 44c629ca2f3cb129b02d6713814a15620d62070e9937c33e7b5f637a08c59875c721d6ac36963a84c99dab4124c3db4f52d78870f8adaab48d863c60b7dcbf05
+ REF 9c6b7807b4fdaefe659ff9ab8ff4ba3937e62b2f # 4.4.0
+ SHA512 d9947180bb82750f9fa81212d343e8a719e6085e4c41327fd178ce0f93c5ef0f5a11e64d066871ac339abc973081cbd9580042fb8625f3cf3738a722439ba1e3
HEAD_REF master
PATCHES
0002-link-glew.patch
- 0003-disable-boost-autolink.patch
- 0004-link-ssl.patch
- 0005-XML_file_path.patch
+ 0005-XML_file_path.patch
+ 0006-GraphicsMagick.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIBS)
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ dbo ENABLE_LIBWTDBO
+ postgresql ENABLE_POSTGRES
+ sqlite3 ENABLE_SQLITE
+ sqlserver ENABLE_MSSQLSERVER
+ openssl ENABLE_SSL
+)
+
+if(VCPKG_TARGET_IS_WINDOWS)
+ set(WT_PLATFORM_SPECIFIC_OPTIONS
+ -DWT_WRASTERIMAGE_IMPLEMENTATION=Direct2D
+ -DCONNECTOR_ISAPI=ON
+ -DENABLE_PANGO=OFF)
+else()
+ set(WT_PLATFORM_SPECIFIC_OPTIONS
+ -DCONNECTOR_FCGI=OFF
+ -DENABLE_PANGO=ON
+ -DHARFBUZZ_INCLUDE_DIR=${CURRENT_INSTALLED_DIR}/include/harfbuzz)
+
+ if ("graphicsmagick" IN_LIST FEATURES)
+ list(APPEND WT_PLATFORM_SPECIFIC_OPTIONS
+ -DWT_WRASTERIMAGE_IMPLEMENTATION=GraphicsMagick)
+ else()
+ list(APPEND WT_PLATFORM_SPECIFIC_OPTIONS
+ -DWT_WRASTERIMAGE_IMPLEMENTATION=none)
+ endif()
+endif()
+
vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS
- -DINSTALL_CONFIG_FILE_PATH="${DOWNLOADS}/wt"
+ -DINSTALL_CONFIG_FILE_PATH="${DOWNLOADS}/wt"
-DSHARED_LIBS=${SHARED_LIBS}
- -DBOOST_DYNAMIC=ON
+ -DBOOST_DYNAMIC=${SHARED_LIBS}
-DDISABLE_BOOST_AUTOLINK=ON
-DBUILD_EXAMPLES=OFF
+ -DBUILD_TESTS=OFF
- -DENABLE_SSL=ON
- -DENABLE_HARU=OFF
- -DENABLE_PANGO=ON
- -DENABLE_SQLITE=ON
- -DENABLE_POSTGRES=ON
- -DENABLE_FIREBIRD=OFF
+ -DCONNECTOR_HTTP=ON
+ -DENABLE_HARU=ON
+ -DHARU_DYNAMIC=${SHARED_LIBS}
-DENABLE_MYSQL=OFF
+ -DENABLE_FIREBIRD=OFF
-DENABLE_QT4=OFF
- -DENABLE_LIBWTTEST=OFF
+ -DENABLE_QT5=OFF
+ -DENABLE_LIBWTTEST=ON
-DENABLE_OPENGL=ON
+ ${FEATURE_OPTIONS}
+ ${WT_PLATFORM_SPECIFIC_OPTIONS}
+
-DUSE_SYSTEM_SQLITE3=ON
-DUSE_SYSTEM_GLEW=ON
diff --git a/ports/wxwidgets/CONTROL b/ports/wxwidgets/CONTROL
index 7c3479f33..35d3b461e 100644
--- a/ports/wxwidgets/CONTROL
+++ b/ports/wxwidgets/CONTROL
@@ -1,6 +1,6 @@
Source: wxwidgets
Version: 3.1.4
-Port-Version: 2
+Port-Version: 3
Homepage: https://github.com/wxWidgets/wxWidgets
Description: wxWidgets is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications.
Build-Depends: zlib, libpng, tiff, expat
diff --git a/ports/wxwidgets/fix-expat.patch b/ports/wxwidgets/fix-expat.patch
deleted file mode 100644
index 2eebc42c9..000000000
--- a/ports/wxwidgets/fix-expat.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/build/cmake/lib/expat.cmake b/build/cmake/lib/expat.cmake
-index 1d2b79b..04bef93 100644
---- a/build/cmake/lib/expat.cmake
-+++ b/build/cmake/lib/expat.cmake
-@@ -7,14 +7,9 @@
- # Licence: wxWindows licence
- #############################################################################
-
--if(wxUSE_EXPAT STREQUAL "builtin")
-- wx_add_builtin_library(wxexpat
-- src/expat/expat/lib/xmlparse.c
-- src/expat/expat/lib/xmlrole.c
-- src/expat/expat/lib/xmltok.c
-- )
-- set(EXPAT_LIBRARIES wxexpat)
-- set(EXPAT_INCLUDE_DIRS ${wxSOURCE_DIR}/src/expat/expat/lib)
--elseif(wxUSE_EXPAT)
-- find_package(EXPAT REQUIRED)
-+find_package(expat CONFIG REQUIRED)
-+if(WIN32 AND NOT MINGW)
-+ set(EXPAT_LIBRARIES expat::libexpat)
-+else()
-+ set(EXPAT_LIBRARIES expat::expat)
- endif()
diff --git a/ports/wxwidgets/portfile.cmake b/ports/wxwidgets/portfile.cmake
index 3ae94b56d..13bbc9c40 100644
--- a/ports/wxwidgets/portfile.cmake
+++ b/ports/wxwidgets/portfile.cmake
@@ -9,7 +9,6 @@ vcpkg_from_github(
PATCHES
disable-platform-lib-dir.patch
fix-stl-build-vs2019-16.6.patch
- fix-expat.patch
)
set(OPTIONS)
diff --git a/ports/x265/CONTROL b/ports/x265/CONTROL
index 1a1ebae22..e9d704c74 100644
--- a/ports/x265/CONTROL
+++ b/ports/x265/CONTROL
@@ -1,5 +1,4 @@
Source: x265
-Version: 3.2
-Port-Version: 5
-Homepage: https://bitbucket.org/multicoreware/x265
+Version: 3.4
+Homepage: https://github.com/videolan/x265
Description: x265 is a H.265 / HEVC video encoder application library, designed to encode video or images into an H.265 / HEVC encoded bitstream.
diff --git a/ports/x265/portfile.cmake b/ports/x265/portfile.cmake
index 6343383f2..3b3ecbba6 100644
--- a/ports/x265/portfile.cmake
+++ b/ports/x265/portfile.cmake
@@ -1,17 +1,15 @@
-include(vcpkg_common_functions)
-
-vcpkg_from_bitbucket(
+vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
- REPO multicoreware/x265
- REF 3.2
- SHA512 e98e26a9d3c2eb7f147ba052d9d8009e1c47e54905375b29e813f33ffddf8b7fac55ea455ae6d28ed1ade2d90f887c7cafe374873cd48b6c5e2560ddd21ccb84
+ REPO videolan/x265
+ REF 07295ba7ab551bb9c1580fdaee3200f1b45711b7 #v3.4
+ SHA512 21a4ef8733a9011eec8b336106c835fbe04689e3a1b820acb11205e35d2baba8c786d9d8cf5f395e78277f921857e4eb8622cf2ef3597bce952d374f7fe9ec29
HEAD_REF master
PATCHES
disable-install-pdb.patch
)
set(ENABLE_ASSEMBLY OFF)
-if (NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+if (VCPKG_TARGET_IS_WINDOWS)
vcpkg_find_acquire_program(NASM)
get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
set(ENV{PATH} "$ENV{PATH};${NASM_EXE_PATH}")
@@ -36,26 +34,19 @@ vcpkg_copy_pdbs()
# remove duplicated include files
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools/x265)
-
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux" OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- file(RENAME ${CURRENT_PACKAGES_DIR}/bin/x265 ${CURRENT_PACKAGES_DIR}/tools/x265/x265)
-elseif(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- file(RENAME ${CURRENT_PACKAGES_DIR}/bin/x265.exe ${CURRENT_PACKAGES_DIR}/tools/x265/x265.exe)
-endif()
+vcpkg_copy_tools(TOOL_NAMES x265 AUTO_CLEAN)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static" OR VCPKG_TARGET_IS_LINUX)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin)
endif()
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/x265)
-
if(WIN32 AND (NOT MINGW))
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/x265.pc" "-lx265" "-lx265-static")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/x265.pc" "-lx265" "-lx265-static")
endif()
endif()
+
if(UNIX)
vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES numa)
else()
@@ -63,5 +54,4 @@ else()
endif()
# Handle copyright
-file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/x265)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/x265/COPYING ${CURRENT_PACKAGES_DIR}/share/x265/copyright)
+file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
diff --git a/ports/zxing-cpp/0003-fix-dependency-bigint.patch b/ports/zxing-cpp/0003-fix-dependency-bigint.patch
new file mode 100644
index 000000000..1601d3e39
--- /dev/null
+++ b/ports/zxing-cpp/0003-fix-dependency-bigint.patch
@@ -0,0 +1,50 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 54071bd..0edd0e9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -44,6 +44,12 @@ if(WIN32)
+ set(CMAKE_DEBUG_POSTFIX -debug)
+ endif()
+
++# Bigint
++find_package(bigint CONFIG REQUIRED)
++
++include_directories(${BIGINT_INCLUDE_DIRS})
++link_libraries(${BIGINT_LIBRARIES})
++
+ # OpenCV classes
+ if(WITH_OPENCV)
+ find_package(OpenCV REQUIRED)
+diff --git a/source_files.cmake b/source_files.cmake
+index db3d8d4..39abe82 100644
+--- a/source_files.cmake
++++ b/source_files.cmake
+@@ -1,28 +1,4 @@
+ set(LIBZXING_FILES
+- core/src/bigint/BigInteger.cc
+- core/src/bigint/BigInteger.cc
+- core/src/bigint/BigInteger.hh
+- core/src/bigint/BigInteger.hh
+- core/src/bigint/BigIntegerAlgorithms.cc
+- core/src/bigint/BigIntegerAlgorithms.cc
+- core/src/bigint/BigIntegerAlgorithms.hh
+- core/src/bigint/BigIntegerAlgorithms.hh
+- core/src/bigint/BigIntegerLibrary.hh
+- core/src/bigint/BigIntegerLibrary.hh
+- core/src/bigint/BigIntegerUtils.cc
+- core/src/bigint/BigIntegerUtils.cc
+- core/src/bigint/BigIntegerUtils.hh
+- core/src/bigint/BigIntegerUtils.hh
+- core/src/bigint/BigUnsigned.cc
+- core/src/bigint/BigUnsigned.cc
+- core/src/bigint/BigUnsigned.hh
+- core/src/bigint/BigUnsigned.hh
+- core/src/bigint/BigUnsignedInABase.cc
+- core/src/bigint/BigUnsignedInABase.cc
+- core/src/bigint/BigUnsignedInABase.hh
+- core/src/bigint/BigUnsignedInABase.hh
+- core/src/bigint/NumberlikeArray.hh
+- core/src/bigint/NumberlikeArray.hh
+ core/src/zxing/aztec/AztecDetectorResult.cpp
+ core/src/zxing/aztec/AztecDetectorResult.h
+ core/src/zxing/aztec/AztecReader.cpp
diff --git a/ports/zxing-cpp/CONTROL b/ports/zxing-cpp/CONTROL
index 89a07a222..4f661dd19 100644
--- a/ports/zxing-cpp/CONTROL
+++ b/ports/zxing-cpp/CONTROL
@@ -1,7 +1,9 @@
Source: zxing-cpp
-Version: 3.3.3-7
+Version: 3.3.3
+Port-Version: 8
Homepage: https://github.com/glassechidna/zxing-cpp
Description: Barcode detection and decoding library.
+Build-Depends: bigint
Default-Features: opencv, iconv
Feature: opencv
diff --git a/ports/zxing-cpp/portfile.cmake b/ports/zxing-cpp/portfile.cmake
index 3e9666390..f6fd43351 100644
--- a/ports/zxing-cpp/portfile.cmake
+++ b/ports/zxing-cpp/portfile.cmake
@@ -9,9 +9,12 @@ vcpkg_from_github(
PATCHES
0001-opencv4-compat.patch
0002-improve-features.patch
+ 0003-fix-dependency-bigint.patch
)
file(REMOVE ${SOURCE_PATH}/cmake/FindModules/FindIconv.cmake)
+# Depends on port bigint
+file(REMOVE_RECURSE ${SOURCE_PATH}/core/src/bigint)
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES