diff options
| author | Billy Robert O'Neal III <bion@microsoft.com> | 2020-08-28 16:31:27 -0700 |
|---|---|---|
| committer | Billy Robert O'Neal III <bion@microsoft.com> | 2020-08-28 16:31:27 -0700 |
| commit | c828f3634723996e6031fb2e3c3d1ac3f4de0cad (patch) | |
| tree | b3fe00a043d5b9351868a0d1f8aead41bb52d2be | |
| parent | 6635a2fa596ca457565eebc2a45664309cd24d77 (diff) | |
| parent | f3f329a048eaff759c1992c458f2e12351486bc7 (diff) | |
| download | vcpkg-update-geos-381.tar.gz vcpkg-update-geos-381.zip | |
Merge remote-tracking branch 'origin/master' into HEADupdate-geos-381
298 files changed, 5141 insertions, 3358 deletions
@@ -254,7 +254,7 @@ and go to the CMake settings (Build, Execution, Deployment > CMake). Finally, in `CMake options`, add the following line: ``` --DCMAKE_TOOLCHAIN_FILE=C:/Users/nimazzuc/src/vcpkg/scripts/buildsystems/vcpkg.cmake +-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake ``` Unfortunately, you'll have to add this to each profile. diff --git a/README_zh_CN.md b/README_zh_CN.md index 286976dc8..3df1af1fd 100644 --- a/README_zh_CN.md +++ b/README_zh_CN.md @@ -239,7 +239,7 @@ $ brew install gcc 最后在 `CMake options` 中添加以下行: ``` --DCMAKE_TOOLCHAIN_FILE=C:/Users/nimazzuc/src/vcpkg/scripts/buildsystems/vcpkg.cmake +-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake ``` 遗憾的是, 您必须手动将此选项加入每个项目配置文件中。 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 diff --git a/scripts/azure-pipelines/azure-pipelines.yml b/scripts/azure-pipelines/azure-pipelines.yml index cda29f7e6..01810eb0f 100644 --- a/scripts/azure-pipelines/azure-pipelines.yml +++ b/scripts/azure-pipelines/azure-pipelines.yml @@ -2,8 +2,8 @@ # SPDX-License-Identifier: MIT
#
variables:
- windows-pool: 'PrWin-2020-06-30'
- linux-pool: 'PrLin-2020-06-30'
+ windows-pool: 'PrWin-2020-08-12'
+ linux-pool: 'PrLin-2020-08-12'
stages:
- stage: check_cxx_formatting
@@ -19,6 +19,7 @@ stages: inputs:
filePath: 'scripts/azure-pipelines/windows/Check-CxxFormatting.ps1'
arguments: '-Root .'
+ pwsh: true
- stage: check_manifest_formatting
displayName: Check the formatting of port manifests
pool: $(windows-pool)
@@ -36,6 +37,7 @@ stages: inputs:
filePath: 'scripts/azure-pipelines/windows/Check-ManifestFormatting.ps1'
arguments: '-Root .'
+ pwsh: true
- stage: run_port_ci
displayName: 'Run the Port CI'
dependsOn:
diff --git a/scripts/azure-pipelines/linux/azure-pipelines.yml b/scripts/azure-pipelines/linux/azure-pipelines.yml index 969348980..054197504 100644 --- a/scripts/azure-pipelines/linux/azure-pipelines.yml +++ b/scripts/azure-pipelines/linux/azure-pipelines.yml @@ -33,7 +33,7 @@ jobs: displayName: 'Build vcpkg'
inputs:
filePath: bootstrap-vcpkg.sh
- arguments: "-buildTests"
+ arguments: '-buildTests'
- bash: toolsrc/build.rel/vcpkg-test
displayName: 'Run vcpkg tests'
- task: PowerShell@2
@@ -47,20 +47,18 @@ jobs: displayName: 'Report on Disk Space After Build'
condition: always()
- task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: x86-linux Build Failure Logs'
+ displayName: 'Publish Artifact: failure logs for x64-linux'
inputs:
PathtoPublish: '$(System.ArtifactsDirectory)/failure-logs'
- ArtifactName: 'x64-linux port build failure logs'
+ ArtifactName: 'failure logs for x64-linux'
condition: failed()
- bash: |
python3 scripts/file_script.py /mnt/vcpkg-ci/installed/vcpkg/info/
displayName: 'Build a file list for all packages'
condition: always()
-
- task: PublishBuildArtifacts@1
- displayName: 'Upload file lists for all packages'
+ displayName: 'Publish Artifact: file lists for x64-linux'
condition: always()
-
inputs:
PathtoPublish: scripts/list_files
- ArtifactName: "x64-linux package file lists"
+ ArtifactName: 'file lists for x64-linux'
diff --git a/scripts/azure-pipelines/linux/create-vmss.ps1 b/scripts/azure-pipelines/linux/create-vmss.ps1 index 84c83dfea..169a80fc9 100755 --- a/scripts/azure-pipelines/linux/create-vmss.ps1 +++ b/scripts/azure-pipelines/linux/create-vmss.ps1 @@ -220,7 +220,7 @@ Write-Progress ` -Status 'Running provisioning script provision-image.sh in VM' `
-PercentComplete (100 / $TotalProgress * $CurrentProgress++)
-Invoke-AzVMRunCommand `
+$ProvisionImageResult = Invoke-AzVMRunCommand `
-ResourceGroupName $ResourceGroupName `
-VMName $ProtoVMName `
-CommandId 'RunShellScript' `
@@ -228,6 +228,8 @@ Invoke-AzVMRunCommand ` -Parameter @{StorageAccountName=$StorageAccountName; `
StorageAccountKey=$StorageAccountKey;}
+Write-Host "provision-image.sh output: $($ProvisionImageResult.value.Message)"
+
####################################################################################################
Write-Progress `
-Activity $ProgressActivity `
diff --git a/scripts/azure-pipelines/linux/provision-image.sh b/scripts/azure-pipelines/linux/provision-image.sh index 5a59161e6..4936cf719 100755 --- a/scripts/azure-pipelines/linux/provision-image.sh +++ b/scripts/azure-pipelines/linux/provision-image.sh @@ -27,7 +27,10 @@ APT_PACKAGES="$APT_PACKAGES libxkbcommon-dev libxcb-keysyms1-dev \ APT_PACKAGES="$APT_PACKAGES libkrb5-dev" # Additionally required by mesa -APT_PACKAGES="$APT_PACKAGES python3-setuptools" +APT_PACKAGES="$APT_PACKAGES python3-setuptools python3-mako" + +# Additionally required by some packages to install additional python packages +APT_PACKAGES="$APT_PACKAGES python3-pip" # Additionally required/installed by Azure DevOps Scale Set Agents APT_PACKAGES="$APT_PACKAGES liblttng-ust0 libkrb5-3 zlib1g libicu60" diff --git a/scripts/azure-pipelines/osx/azure-pipelines.yml b/scripts/azure-pipelines/osx/azure-pipelines.yml index 6e48238a7..0856aada7 100644 --- a/scripts/azure-pipelines/osx/azure-pipelines.yml +++ b/scripts/azure-pipelines/osx/azure-pipelines.yml @@ -17,10 +17,8 @@ jobs: value: /Users/vagrant/Data/downloads
steps:
- - bash: |
- df -h
+ - bash: df -h
displayName: 'Report on Disk Space'
- condition: always()
- bash: |
brew list autoconf || brew install autoconf
brew list automake || brew install automake
@@ -59,20 +57,18 @@ jobs: displayName: 'Report on Disk Space After Build'
condition: always()
- task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: x64-osx port build failure logs'
+ displayName: 'Publish Artifact: failure logs for x64-osx'
inputs:
PathtoPublish: '$(System.ArtifactsDirectory)/failure-logs'
- ArtifactName: 'x64-osx port build failure logs'
+ ArtifactName: 'failure logs for x64-osx'
condition: failed()
- bash: |
python3 scripts/file_script.py /Users/vagrant/Data/installed/vcpkg/info/
displayName: 'Build a file list for all packages'
condition: always()
-
- task: PublishBuildArtifacts@1
- displayName: 'Upload file lists for all packages'
+ displayName: 'Publish Artifact: file lists for x64-osx'
condition: always()
-
inputs:
PathtoPublish: scripts/list_files
- ArtifactName: "x64-osx package file lists"
+ ArtifactName: 'file lists for x64-osx'
diff --git a/scripts/azure-pipelines/windows/Check-CxxFormatting.ps1 b/scripts/azure-pipelines/windows/Check-CxxFormatting.ps1 index 2adeeae45..eaa9e692b 100644 --- a/scripts/azure-pipelines/windows/Check-CxxFormatting.ps1 +++ b/scripts/azure-pipelines/windows/Check-CxxFormatting.ps1 @@ -9,8 +9,12 @@ Param( $clangFormat = 'C:\Program Files\LLVM\bin\clang-format.exe' if (-not (Test-Path $clangFormat)) { - Write-Error "clang-format not found; is it installed in the CI machines?" - throw + $clangFormat = 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Tools\Llvm\x64\bin\clang-format.exe' + if (-not (Test-Path $clangFormat)) + { + Write-Error 'clang-format not found; is it installed in the CI machines?' + throw + } } $toolsrc = Get-Item "$Root/toolsrc" @@ -32,7 +36,7 @@ try $msg = @( "", "The formatting of the C++ files didn't match our expectation.", - "See https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#vcpkg-internal-code for solution." + "See github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#vcpkg-internal-code for solution." ) $msg += "File list:" $msg += " $changedFiles" diff --git a/scripts/azure-pipelines/windows/Check-ManifestFormatting.ps1 b/scripts/azure-pipelines/windows/Check-ManifestFormatting.ps1 index 6e97ba35c..e4c59582d 100644 --- a/scripts/azure-pipelines/windows/Check-ManifestFormatting.ps1 +++ b/scripts/azure-pipelines/windows/Check-ManifestFormatting.ps1 @@ -37,7 +37,7 @@ if (-not $IgnoreErrors -and $null -ne $changedFiles) $msg = @( "", "The formatting of the manifest files didn't match our expectation.", - "See https://github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#manifest for solution." + "See github.com/microsoft/vcpkg/blob/master/docs/maintainers/maintainer-guide.md#manifest for solution." ) $msg += "" diff --git a/scripts/azure-pipelines/windows/azure-pipelines.yml b/scripts/azure-pipelines/windows/azure-pipelines.yml index 340138e12..bb8c7435c 100644 --- a/scripts/azure-pipelines/windows/azure-pipelines.yml +++ b/scripts/azure-pipelines/windows/azure-pipelines.yml @@ -20,11 +20,13 @@ jobs: displayName: 'Initialize Environment'
inputs:
filePath: 'scripts/azure-pipelines/windows/initialize-environment.ps1'
+ pwsh: true
- task: PowerShell@2
displayName: 'Report on Disk Space'
condition: always()
inputs:
filePath: 'scripts/azure-pipelines/windows/disk-space.ps1'
+ pwsh: true
# Note: D: is the Azure machines' temporary disk.
- script: .\bootstrap-vcpkg.bat
displayName: 'Build vcpkg'
@@ -49,35 +51,38 @@ jobs: inputs:
filePath: 'scripts/azure-pipelines/end-to-end-tests.ps1'
arguments: '-Triplet ${{ parameters.triplet }} -WorkingRoot ${{ variables.WORKING_ROOT }}'
+ pwsh: true
- task: PowerShell@2
displayName: '*** Test Modified Ports and Prepare Test Logs ***'
inputs:
failOnStderr: true
filePath: 'scripts/azure-pipelines/test-modified-ports.ps1'
arguments: '-Triplet ${{ parameters.triplet }} -BuildReason $(Build.Reason) -ArchivesRoot W:\ -WorkingRoot ${{ variables.WORKING_ROOT }} -ArtifactsDirectory $(System.ArtifactsDirectory)'
+ pwsh: true
- task: PowerShell@2
displayName: 'Report on Disk Space After Build'
condition: always()
inputs:
filePath: 'scripts/azure-pipelines/windows/disk-space.ps1'
+ pwsh: true
- task: PublishBuildArtifacts@1
- displayName: 'Publish Artifact: ${{ parameters.triplet }} port build failure logs'
+ displayName: 'Publish Artifact: failure logs for ${{ parameters.triplet }}'
inputs:
PathtoPublish: '$(System.ArtifactsDirectory)\failure-logs'
- ArtifactName: '${{ parameters.triplet }} port build failure logs'
+ ArtifactName: 'failure logs for ${{ parameters.triplet }}'
condition: failed()
- task: PowerShell@2
- displayName: "Generating all packages files"
+ displayName: 'Build a file list for all packages'
condition: always()
-
inputs:
targetType: inline
script: |
./vcpkg.exe fetch python3
& $(.\vcpkg fetch python3) .\scripts\file_script.py D:\installed\vcpkg\info\
+ pwsh: true
- task: PublishBuildArtifacts@1
- displayName: 'Upload file lists for all packages'
+ displayName: 'Publish Artifact: file lists for ${{ parameters.triplet }}'
condition: always()
inputs:
PathtoPublish: scripts/list_files
- ArtifactName: "${{ parameters.triplet }} package file lists"
+ ArtifactName: 'file lists for ${{ parameters.triplet }}'
diff --git a/scripts/azure-pipelines/windows/create-vmss.ps1 b/scripts/azure-pipelines/windows/create-vmss.ps1 index b1aa5d0ce..3bb89ee25 100644 --- a/scripts/azure-pipelines/windows/create-vmss.ps1 +++ b/scripts/azure-pipelines/windows/create-vmss.ps1 @@ -198,7 +198,7 @@ Write-Progress ` -Status 'Running provisioning script provision-image.txt (as a .ps1) in VM' `
-PercentComplete (100 / $TotalProgress * $CurrentProgress++)
-Invoke-AzVMRunCommand `
+$ProvisionImageResult = Invoke-AzVMRunCommand `
-ResourceGroupName $ResourceGroupName `
-VMName $ProtoVMName `
-CommandId 'RunPowerShellScript' `
@@ -207,6 +207,8 @@ Invoke-AzVMRunCommand ` StorageAccountName=$StorageAccountName; `
StorageAccountKey=$StorageAccountKey;}
+Write-Host "provision-image.ps1 output: $($ProvisionImageResult.value.Message)"
+
####################################################################################################
Write-Progress `
-Activity $ProgressActivity `
@@ -221,12 +223,14 @@ Write-Progress ` -Status 'Running provisioning script sysprep.ps1 in VM' `
-PercentComplete (100 / $TotalProgress * $CurrentProgress++)
-Invoke-AzVMRunCommand `
+$SysprepResult = Invoke-AzVMRunCommand `
-ResourceGroupName $ResourceGroupName `
-VMName $ProtoVMName `
-CommandId 'RunPowerShellScript' `
-ScriptPath "$PSScriptRoot\sysprep.ps1"
+Write-Host "sysprep.ps1 output: $($SysprepResult.value.Message)"
+
####################################################################################################
Write-Progress `
-Activity $ProgressActivity `
diff --git a/scripts/azure-pipelines/windows/provision-image.txt b/scripts/azure-pipelines/windows/provision-image.txt index 798b96e9a..b43b1bf87 100644 --- a/scripts/azure-pipelines/windows/provision-image.txt +++ b/scripts/azure-pipelines/windows/provision-image.txt @@ -7,7 +7,7 @@ Sets up a machine to be an image for a scale set. .DESCRIPTION
provision-image.ps1 runs on an existing, freshly provisioned virtual machine,
-and sets that virtual machine up as a vcpkg build machine. After this is done,
+and sets up that virtual machine as a build machine. After this is done,
(outside of this script), we take that machine and make it an image to be copied
for setting up new VMs in the scale set.
@@ -60,10 +60,14 @@ Function Get-TempFilePath { return Join-Path $tempPath $tempName
}
-if (-not [string]::IsNullOrEmpty($AdminUserPassword)) {
- Write-Host "AdminUser password supplied; switching to AdminUser"
+$TranscriptPath = 'C:\provision-image-transcript.txt'
+
+if ([string]::IsNullOrEmpty($AdminUserPassword)) {
+ Start-Transcript -Path $TranscriptPath
+} else {
+ Write-Host 'AdminUser password supplied; switching to AdminUser.'
$PsExecPath = Get-TempFilePath -Extension 'exe'
- Write-Host "Downloading psexec to $PsExecPath"
+ Write-Host "Downloading psexec to: $PsExecPath"
& curl.exe -L -o $PsExecPath -s -S https://live.sysinternals.com/PsExec64.exe
$PsExecArgs = @(
'-u',
@@ -89,8 +93,11 @@ if (-not [string]::IsNullOrEmpty($AdminUserPassword)) { $PsExecArgs += $StorageAccountKey
}
- Write-Host "Executing $PsExecPath " + @PsExecArgs
- & $PsExecPath @PsExecArgs > C:\ProvisionLog.txt
+ Write-Host "Executing: $PsExecPath $PsExecArgs"
+
+ $proc = Start-Process -FilePath $PsExecPath -ArgumentList $PsExecArgs -Wait -PassThru
+ Write-Host 'Reading transcript...'
+ Get-Content -Path $TranscriptPath
Write-Host 'Cleaning up...'
Remove-Item $PsExecPath
exit $proc.ExitCode
@@ -118,7 +125,6 @@ $WindowsSDKUrl = 'https://download.microsoft.com/download/1/c/3/1c3d5161-d9e9-4e $WindowsWDKUrl = 'https://download.microsoft.com/download/1/a/7/1a730121-7aa7-46f7-8978-7db729aa413d/wdk/wdksetup.exe'
$MpiUrl = 'https://download.microsoft.com/download/a/5/2/a5207ca5-1203-491a-8fb8-906fd68ae623/msmpisetup.exe'
-$LlvmUrl = 'https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/LLVM-10.0.0-win64.exe'
$CudaUrl = 'https://developer.download.nvidia.com/compute/cuda/10.1/Prod/local_installers/cuda_10.1.243_426.00_win10.exe'
$CudaFeatures = 'nvcc_10.1 cuobjdump_10.1 nvprune_10.1 cupti_10.1 gpu_library_advisor_10.1 memcheck_10.1 ' + `
@@ -127,7 +133,7 @@ $CudaFeatures = 'nvcc_10.1 cuobjdump_10.1 nvprune_10.1 cupti_10.1 gpu_library_ad 'cusparse_dev_10.1 nvgraph_10.1 nvgraph_dev_10.1 npp_10.1 npp_dev_10.1 nvrtc_10.1 nvrtc_dev_10.1 nvml_dev_10.1 ' + `
'occupancy_calculator_10.1 fortran_examples_10.1'
-$BinSkimUrl = 'https://www.nuget.org/api/v2/package/Microsoft.CodeAnalysis.BinSkim/1.6.0'
+$PwshUrl = 'https://github.com/PowerShell/PowerShell/releases/download/v7.0.3/PowerShell-7.0.3-win-x64.msi'
$ErrorActionPreference = 'Stop'
$ProgressPreference = 'SilentlyContinue'
@@ -191,7 +197,7 @@ Function InstallVisualStudio { Write-Host 'Downloading Visual Studio...'
[string]$bootstrapperExe = Get-TempFilePath -Extension 'exe'
curl.exe -L -o $bootstrapperExe -s -S $BootstrapperUrl
- Write-Host "Installing Visual Studio..."
+ Write-Host 'Installing Visual Studio...'
$args = @('/c', $bootstrapperExe, '--quiet', '--norestart', '--wait', '--nocache')
foreach ($workload in $Workloads) {
$args += '--add'
@@ -364,59 +370,6 @@ Function InstallWindowsWDK { <#
.SYNOPSIS
-Installs LLVM.
-
-.DESCRIPTION
-InstallLLVM installs LLVM from the supplied URL.
-
-.PARAMETER Url
-The URL of the LLVM installer.
-#>
-Function InstallLLVM {
- Param(
- [String]$Url
- )
-
- try {
- Write-Host 'Downloading LLVM...'
- [string]$installerPath = Get-TempFilePath -Extension 'exe'
- curl.exe -L -o $installerPath -s -S $Url
- Write-Host 'Installing LLVM...'
- $proc = Start-Process -FilePath $installerPath -ArgumentList @('/S') -NoNewWindow -Wait -PassThru
- PrintMsiExitCodeMessage $proc.ExitCode
- }
- catch {
- Write-Error "Failed to install LLVM! $($_.Exception.Message)"
- throw
- }
-}
-
-<#
-.SYNOPSIS
-Installs LLVM.
-
-.DESCRIPTION
-InstallLLVM installs LLVM from the supplied URL.
-
-.PARAMETER Url
-The URL of the LLVM installer.
-#>
-Function InstallLLVM {
- try {
- Write-Host 'Downloading LLVM...'
- [string]$installerPath = Get-TempFilePath -Extension 'exe'
- curl.exe -L -o $installerPath -s -S $Url
- Write-Host 'Installing LLVM...'
- $proc = Start-Process -FilePath $installerPath -ArgumentList @('/S') -NoNewWindow -Wait -PassThru
- PrintMsiExitCodeMessage $proc.ExitCode
- }
- catch {
- Write-Error "Failed to install LLVM! $($_.Exception.Message)"
- }
-}
-
-<#
-.SYNOPSIS
Installs MPI
.DESCRIPTION
@@ -458,7 +411,7 @@ Installs NVIDIA's CUDA Toolkit. .DESCRIPTION
InstallCuda installs the CUDA Toolkit with the features specified as a
-space separated list of strings in $Features.
+space-separated list of strings in $Features.
.PARAMETER Url
The URL of the CUDA installer.
@@ -504,6 +457,7 @@ if ($null -eq $av) { Write-Host 'AntiVirus not installed, skipping exclusions.'
} else {
Write-Host 'Configuring AntiVirus exclusions...'
+ Add-MpPreference -ExclusionPath C:\agent
Add-MPPreference -ExclusionPath D:\
Add-MPPreference -ExclusionProcess ninja.exe
Add-MPPreference -ExclusionProcess clang-cl.exe
@@ -515,10 +469,9 @@ if ($null -eq $av) { InstallVisualStudio -Workloads $Workloads -BootstrapperUrl $VisualStudioBootstrapperUrl -Nickname 'Stable'
InstallWindowsSDK -Url $WindowsSDKUrl
InstallWindowsWDK -Url $WindowsWDKUrl
-InstallLLVM -Url $LlvmUrl
InstallMpi -Url $MpiUrl
InstallCuda -Url $CudaUrl -Features $CudaFeatures
-InstallZip -Url $BinSkimUrl -Name 'BinSkim' -Dir 'C:\BinSkim'
+InstallMSI -Url $PwshUrl -Name 'PowerShell Core'
if ([string]::IsNullOrWhiteSpace($StorageAccountName)) {
Write-Host 'No storage account name configured.'
} else {
diff --git a/scripts/azure-pipelines/windows/sysprep.ps1 b/scripts/azure-pipelines/windows/sysprep.ps1 index c0965350d..a29950044 100644 --- a/scripts/azure-pipelines/windows/sysprep.ps1 +++ b/scripts/azure-pipelines/windows/sysprep.ps1 @@ -14,4 +14,4 @@ for more information. $ErrorActionPreference = 'Stop'
Write-Host 'Running sysprep'
-& C:\Windows\system32\sysprep\sysprep.exe /oobe /generalize /shutdown
+& C:\Windows\system32\sysprep\sysprep.exe /oobe /generalize /mode:vm /shutdown
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index 7eb6d474a..753c0523c 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -23,7 +23,13 @@ function(_vcpkg_get_directory_name_of_file_above OUT DIRECTORY FILENAME) set(${OUT} ${_vcpkg_get_dir_out} CACHE INTERNAL "_vcpkg_get_directory_name_of_file_above: ${OUT}") endfunction() -_vcpkg_get_directory_name_of_file_above(_VCPKG_MANIFEST_DIR ${CMAKE_CURRENT_SOURCE_DIR} "vcpkg.json") +if(NOT DEFINED VCPKG_MANIFEST_DIR) + if(EXISTS "${CMAKE_SOURCE_DIR}/vcpkg.json") + set(_VCPKG_MANIFEST_DIR "${CMAKE_SOURCE_DIR}") + endif() +else() + set(_VCPKG_MANIFEST_DIR ${VCPKG_MANIFEST_DIR}) +endif() if(NOT DEFINED VCPKG_MANIFEST_MODE) if(_VCPKG_MANIFEST_DIR) set(VCPKG_MANIFEST_MODE ON) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index e5292ed5c..b8a17988f 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -143,8 +143,6 @@ bond:x64-uwp=fail botan:arm64-windows=fail botan:arm-uwp=fail botan:x64-uwp=fail -box2d:x64-uwp=fail -box2d:arm-uwp=fail breakpad:arm64-windows=fail bullet3:arm64-windows=fail bullet3:arm-uwp=fail @@ -155,6 +153,11 @@ caf:x64-uwp=fail caffe2:x86-windows=fail caffe2:arm64-windows=fail cairomm:x64-linux=fail +# capnproto currently triggers an ICE +capnproto:x86-windows=fail +capnproto:x64-windows=fail +capnproto:x64-windows-static=fail +# capnproto doesn't support arm, arm64, or UWP capnproto:arm64-windows=fail capnproto:arm-uwp=fail capnproto:x64-uwp=fail @@ -208,8 +211,9 @@ chmlib:x64-uwp=fail civetweb:arm64-windows = skip civetweb:arm-uwp = skip civetweb:x64-uwp = skip -# clapack is replaced by lapack-reference. +# clapack is replaced by lapack-reference. clapack:x64-linux = skip +clapack:x64-osx = skip clapack:x64-windows = skip clapack:x64-windows-static = skip clapack:x86-windows = skip @@ -270,8 +274,6 @@ crashpad:x86-windows=fail crfsuite:arm-uwp=fail crfsuite:x64-uwp=fail crossguid:x64-osx=fail -cspice:arm-uwp=fail -cspice:x64-uwp=fail ctemplate:arm64-windows=fail ctemplate:arm-uwp=fail ctemplate:x64-linux=fail @@ -424,6 +426,16 @@ flint:x64-osx=fail fltk:arm-uwp=fail fltk:x64-uwp=fail fluidsynth:x64-osx=fail +# fluidlite conflicts with fluidsynth; we test fluidsynth rather than fluidlite because +# fluidlite has no dependencies and thus is less likely to be broken by another package. +fluidlite:arm-uwp=skip +fluidlite:arm64-windows=skip +fluidlite:x64-linux=skip +fluidlite:x64-osx=skip +fluidlite:x64-uwp=skip +fluidlite:x64-windows-static=skip +fluidlite:x64-windows=skip +fluidlite:x86-windows=skip fmem:arm-uwp=fail fmem:x64-uwp=fail fmi4cpp:arm-uwp=fail @@ -508,6 +520,8 @@ gmmlib:x64-uwp=fail gmmlib:x64-windows=fail gmmlib:x64-windows-static=fail gmmlib:x86-windows=fail +# VS 2019 16.7 broke gmp UWP https://github.com/microsoft/vcpkg/issues/13172 +gmp:x64-uwp=fail google-cloud-cpp:arm64-windows=fail google-cloud-cpp:arm-uwp=fail google-cloud-cpp:x64-uwp=fail @@ -1172,6 +1186,17 @@ ogre-next:x86-windows = skip ois:arm64-windows=fail ois:arm-uwp=fail ois:x64-uwp=fail +# ompl is vulnerable to some form of race in its dependent ports, and adding 'ode' as a dependency +# does not resolve the issue +# src/ompl/CMakeFiles/ompl.dir/extensions/ode/src/OpenDEStateValidityChecker.cpp.o +# -L/mnt/vcpkg-ci/packages/flann_x64-linux/debug/lib -L/mnt/vcpkg-ci/packages/ode_x64-linux/debug/lib +# -Wl,-rpath,/mnt/vcpkg-ci/packages/flann_x64-linux/debug/lib:/mnt/vcpkg-ci/packages/ode_x64-linux/debug/lib:::::::::::::::::::::::::::::::::::::::::::::::: +# -lode /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libboost_serialization.a +# /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libboost_filesystem.a +# /mnt/vcpkg-ci/installed/x64-linux/debug/lib/libboost_system.a -lpthread && : +# /usr/bin/ld: cannot find -lode +ompl:x64-osx=fail +ompl:x64-linux=fail open62541:arm-uwp=fail open62541:x64-uwp=fail openal-soft:arm-uwp=fail @@ -1214,10 +1239,6 @@ openexr:arm-uwp=fail openexr:x64-uwp=fail opengl:arm64-windows=fail opengl:arm-uwp=fail -openmama:x64-windows=fail -openmama:x86-windows=fail -openmama:x64-linux=fail -openmama:x64-osx=fail openmesh:arm64-windows=fail openmesh:arm-uwp=fail openmesh:x64-uwp=fail @@ -1227,7 +1248,6 @@ openmpi:x64-uwp=fail openmpi:x64-windows=fail openmpi:x64-windows-static=fail openmpi:x86-windows=fail -openmvs:x64-linux=fail openni2:x64-uwp=fail openni2:x64-windows-static=fail openscap:x64-linux=fail @@ -1346,10 +1366,6 @@ portaudio:x64-uwp=fail portaudio:x64-windows-static=fail portaudio:x64-windows=fail portaudio:x86-windows=fail -portmidi:arm-uwp=fail -portmidi:x64-linux=fail -portmidi:x64-osx=fail -portmidi:x64-uwp=fail pqp:arm-uwp=fail pqp:x64-uwp=fail proj4:arm64-windows=fail @@ -1775,6 +1791,10 @@ uvatlas:arm-uwp=fail uvatlas:x64-linux=fail uvatlas:x64-osx=fail uvatlas:x64-windows-static=fail +v8:arm64-windows=fail +v8:arm-uwp=fail +v8:x64-osx=fail +v8:x64-uwp=fail vectorclass:arm64-windows=fail vectorclass:arm-uwp=fail vlpp:x64-osx=fail diff --git a/scripts/cmake/vcpkg_acquire_msys.cmake b/scripts/cmake/vcpkg_acquire_msys.cmake index c7d0e8d95..c9c11a7ad 100644 --- a/scripts/cmake/vcpkg_acquire_msys.cmake +++ b/scripts/cmake/vcpkg_acquire_msys.cmake @@ -4,7 +4,7 @@ ## ## ## Usage ## ```cmake -## vcpkg_acquire_msys(<MSYS_ROOT_VAR> [PACKAGES <package>...]) +## vcpkg_acquire_msys(<MSYS_ROOT_VAR> [PACKAGES <package>...] [TIMEOUT <seconds>]) ## ``` ## ## ## Parameters @@ -14,6 +14,9 @@ ## ### PACKAGES ## A list of packages to acquire in msys. ## +## ### TIMEOUT +## Optional timeout to override the default (10 min.) after which installation of PACKAGES is terminated. +## ## To ensure a package is available: `vcpkg_acquire_msys(MSYS_ROOT PACKAGES make automake1.15)` ## ## ## Notes @@ -38,7 +41,13 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) set(TIMESTAMP 20200812) set(TOOLPATH ${DOWNLOADS}/tools/msys2-${TIMESTAMP}) - cmake_parse_arguments(_am "" "" "PACKAGES" ${ARGN}) + cmake_parse_arguments(_am "" "TIMEOUT" "PACKAGES" ${ARGN}) + + if(_am_TIMEOUT) + set(TIMEOUT_PACKAGES "TIMEOUT;${_am_TIMEOUT}") + else() + set(TIMEOUT_PACKAGES "TIMEOUT;600") + endif() if(NOT CMAKE_HOST_WIN32) message(FATAL_ERROR "vcpkg_acquire_msys() can only be used on Windows hosts") @@ -55,7 +64,7 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) set(TOOLSUBPATH msys64) set(URLS "https://sourceforge.net/projects/msys2/files/Base/x86_64/msys2-base-x86_64-20190524.tar.xz/download" - "http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" + "https://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20190524.tar.xz" ) set(ARCHIVE "msys2-base-x86_64-20190524.tar.xz") set(HASH 50796072d01d30cc4a02df0f9dafb70e2584462e1341ef0eff94e2542d3f5173f20f81e8f743e9641b7528ea1492edff20ce83cb40c6e292904905abe2a91ccc) @@ -64,7 +73,7 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) set(TOOLSUBPATH msys32) set(URLS "https://sourceforge.net/projects/msys2/files/Base/i686/msys2-base-i686-20190524.tar.xz/download" - "http://repo.msys2.org/distrib/i686/msys2-base-i686-20190524.tar.xz" + "https://repo.msys2.org/distrib/i686/msys2-base-i686-20190524.tar.xz" ) set(ARCHIVE "msys2-base-i686-20190524.tar.xz") set(HASH b26d7d432e1eabe2138c4caac5f0a62670f9dab833b9e91ca94b9e13d29a763323b0d30160f09a381ac442b473482dac799be0fea5dd7b28ea2ddd3ba3cd3c25) @@ -85,12 +94,12 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) # download the new keyring, without it new packages and package updates # might not install vcpkg_download_distfile(KEYRING_PATH - URLS http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz + URLS https://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz FILENAME msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz SHA512 a5023fd17ccf6364bc6e27c5e63aea25f1fc264a5247cbae4008864c828c38c3e0b4de09ded650e28d2e24e319b5fcf7a9c0da0fa3a8ac81679470fc6bd120c9 ) vcpkg_download_distfile(KEYRING_SIG_PATH - URLS http://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig + URLS https://repo.msys2.org/msys/x86_64/msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig FILENAME msys2-keyring-r21.b39fb11-1-any.pkg.tar.xz.sig SHA512 c326fefd13f58339afe0d0dc78306aa6ab27cafa8c4d792c2d34aa81fdd1f759d490990ab79daa9664a03a6dfa14ffd2b2ad828bf19a883410112d01f5ed6c4c ) @@ -107,7 +116,7 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) ) # install the new keyring _execute_process( - COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman-key --verify ${KEYRING_SIG_PATH}" + COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman-key --verify \"${KEYRING_SIG_PATH}\"" WORKING_DIRECTORY ${TOOLPATH} RESULT_VARIABLE _vam_error_code ) @@ -115,7 +124,7 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) message(FATAL_ERROR "Cannot verify MSYS2 keyring.") endif() _execute_process( - COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -U ${KEYRING_PATH} --noconfirm" + COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -U \"${KEYRING_PATH}\" --noconfirm" WORKING_DIRECTORY ${TOOLPATH} ) # we have to kill all GnuPG daemons otherwise bash would potentially not be @@ -128,8 +137,9 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) # we need to update pacman before anything else due to pacman transitioning # to using zstd packages, and our pacman is too old to support those _execute_process( - COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -Sy pacman --noconfirm" + COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -Sy pacman --noconfirm --disable-download-timeout" WORKING_DIRECTORY ${TOOLPATH} + TIMEOUT 600 ) # dash relies on specific versions of the base packages, which prevents us # from doing a proper update. However, we don't need it so we remove it @@ -138,8 +148,9 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) WORKING_DIRECTORY ${TOOLPATH} ) _execute_process( - COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -Syu --noconfirm" + COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "PATH=/usr/bin;pacman -Syu --noconfirm --disable-download-timeout" WORKING_DIRECTORY ${TOOLPATH} + TIMEOUT 600 ) file(WRITE "${TOOLPATH}/${STAMP}" "0") message(STATUS "Acquiring MSYS2... OK") @@ -153,9 +164,10 @@ function(vcpkg_acquire_msys PATH_TO_ROOT_OUT) set(ENV{PATH} ${PATH_TO_ROOT}/usr/bin) vcpkg_execute_required_process( ALLOW_IN_DOWNLOAD_MODE - COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "pacman -S --noconfirm --needed ${_am_PACKAGES}" + COMMAND ${PATH_TO_ROOT}/usr/bin/bash.exe --noprofile --norc -c "pacman -S --noconfirm --disable-download-timeout --needed ${_am_PACKAGES}" WORKING_DIRECTORY ${TOOLPATH} LOGNAME msys-pacman-${TARGET_TRIPLET} + ${TIMEOUT_PACKAGES} ) set(ENV{PATH} "${_ENV_ORIGINAL}") diff --git a/scripts/cmake/vcpkg_configure_cmake.cmake b/scripts/cmake/vcpkg_configure_cmake.cmake index 9f75c5e07..ce534b7aa 100644 --- a/scripts/cmake/vcpkg_configure_cmake.cmake +++ b/scripts/cmake/vcpkg_configure_cmake.cmake @@ -59,11 +59,11 @@ ## * [poco](https://github.com/Microsoft/vcpkg/blob/master/ports/poco/portfile.cmake) ## * [opencv](https://github.com/Microsoft/vcpkg/blob/master/ports/opencv/portfile.cmake) function(vcpkg_configure_cmake) - cmake_parse_arguments(_csc + # parse parameters such that semicolons in arguments to OPTIONS don't get erased + cmake_parse_arguments(PARSE_ARGV 0 _csc "PREFER_NINJA;DISABLE_PARALLEL_CONFIGURE;NO_CHARSET_FLAG" "SOURCE_PATH;GENERATOR" "OPTIONS;OPTIONS_DEBUG;OPTIONS_RELEASE" - ${ARGN} ) if(NOT VCPKG_PLATFORM_TOOLSET) diff --git a/scripts/cmake/vcpkg_download_distfile.cmake b/scripts/cmake/vcpkg_download_distfile.cmake index 6ad073803..1cc06147a 100644 --- a/scripts/cmake/vcpkg_download_distfile.cmake +++ b/scripts/cmake/vcpkg_download_distfile.cmake @@ -59,9 +59,6 @@ function(vcpkg_download_distfile VAR) message(FATAL_ERROR "vcpkg_download_distfile requires a FILENAME argument.") endif() if(NOT _VCPKG_INTERNAL_NO_HASH_CHECK) - if(vcpkg_download_distfile_SKIP_SHA512 AND NOT VCPKG_USE_HEAD_VERSION) - message(FATAL_ERROR "vcpkg_download_distfile only allows SKIP_SHA512 when building with --head") - endif() if(NOT vcpkg_download_distfile_SKIP_SHA512 AND NOT DEFINED vcpkg_download_distfile_SHA512) message(FATAL_ERROR "vcpkg_download_distfile requires a SHA512 argument. If you do not know the SHA512, add it as 'SHA512 0' and re-run this command.") endif() diff --git a/scripts/cmake/vcpkg_escape_regex_control_characters.cmake b/scripts/cmake/vcpkg_escape_regex_control_characters.cmake new file mode 100644 index 000000000..3d9d92b5e --- /dev/null +++ b/scripts/cmake/vcpkg_escape_regex_control_characters.cmake @@ -0,0 +1,4 @@ +function(vcpkg_escape_regex_control_characters out_var string_with_regex_characters) + string(REGEX REPLACE "[][+.*()^\\$?|]" "\\\\\\0" _escaped_content "${string_with_regex_characters}") + set(${out_var} "${_escaped_content}" PARENT_SCOPE) +endfunction() diff --git a/scripts/cmake/vcpkg_execute_required_process.cmake b/scripts/cmake/vcpkg_execute_required_process.cmake index f25a5b55e..af5ab1e9e 100644 --- a/scripts/cmake/vcpkg_execute_required_process.cmake +++ b/scripts/cmake/vcpkg_execute_required_process.cmake @@ -8,6 +8,7 @@ ## COMMAND <${PERL}> [<arguments>...] ## WORKING_DIRECTORY <${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg> ## LOGNAME <build-${TARGET_TRIPLET}-dbg> +## [TIMEOUT <seconds>] ## ) ## ``` ## ## Parameters @@ -24,6 +25,9 @@ ## ### LOGNAME ## The prefix to use for the log files. ## +## ### TIMEOUT +## Optional timeout after which to terminate the command. +## ## This should be a unique name for different triplets so that the logs don't conflict when building multiple at once. ## ## ## Examples @@ -34,10 +38,16 @@ ## * [qt5](https://github.com/Microsoft/vcpkg/blob/master/ports/qt5/portfile.cmake) include(vcpkg_prettify_command) function(vcpkg_execute_required_process) - cmake_parse_arguments(vcpkg_execute_required_process "ALLOW_IN_DOWNLOAD_MODE" "WORKING_DIRECTORY;LOGNAME" "COMMAND" ${ARGN}) + cmake_parse_arguments(vcpkg_execute_required_process "ALLOW_IN_DOWNLOAD_MODE" "WORKING_DIRECTORY;LOGNAME;TIMEOUT" "COMMAND" ${ARGN}) set(LOG_OUT "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-out.log") set(LOG_ERR "${CURRENT_BUILDTREES_DIR}/${vcpkg_execute_required_process_LOGNAME}-err.log") + if(vcpkg_execute_required_process_TIMEOUT) + set(TIMEOUT_PARAM "TIMEOUT;${vcpkg_execute_required_process_TIMEOUT}") + else() + set(TIMEOUT_PARAM "") + endif() + set(execute_process_function execute_process) if (DEFINED VCPKG_DOWNLOAD_MODE AND NOT vcpkg_execute_required_process_ALLOW_IN_DOWNLOAD_MODE) message(FATAL_ERROR @@ -52,7 +62,8 @@ Halting portfile execution. OUTPUT_FILE ${LOG_OUT} ERROR_FILE ${LOG_ERR} RESULT_VARIABLE error_code - WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY}) + WORKING_DIRECTORY ${vcpkg_execute_required_process_WORKING_DIRECTORY} + ${TIMEOUT_PARAM}) if(error_code) set(LOGS) file(READ "${LOG_OUT}" out_contents) diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index 0a9ed4507..30809e32b 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -52,55 +52,55 @@ function(vcpkg_find_acquire_program VAR) unset(NOEXTRACT) unset(_vfa_RENAME) unset(SUBDIR) + unset(PROG_PATH_SUBDIR) unset(REQUIRED_INTERPRETER) unset(_vfa_SUPPORTED) unset(POST_INSTALL_COMMAND) - - vcpkg_get_program_files_platform_bitness(PROGRAM_FILES_PLATFORM_BITNESS) - set(PROGRAM_FILES_32_BIT $ENV{ProgramFiles\(X86\)}) - if (NOT DEFINED PROGRAM_FILES_32_BIT) - set(PROGRAM_FILES_32_BIT $ENV{PROGRAMFILES}) - endif() + unset(PATHS) if(VAR MATCHES "PERL") set(PROGNAME perl) - set(PATHS ${DOWNLOADS}/tools/perl/perl/bin) + set(PERL_VERSION 5.30.0.1) + set(SUBDIR ${PERL_VERSION}) + set(PATHS ${DOWNLOADS}/tools/perl/${SUBDIR}/perl/bin) set(BREW_PACKAGE_NAME "perl") set(APT_PACKAGE_NAME "perl") set(URL - "https://strawberry.perl.bot/download/5.30.0.1/strawberry-perl-5.30.0.1-32bit.zip" - "http://strawberryperl.com/download/5.30.0.1/strawberry-perl-5.30.0.1-32bit.zip" + "https://strawberry.perl.bot/download/${PERL_VERSION}/strawberry-perl-${PERL_VERSION}-32bit.zip" + "http://strawberryperl.com/download/${PERL_VERSION}/strawberry-perl-${PERL_VERSION}-32bit.zip" ) - set(ARCHIVE "strawberry-perl-5.30.0.1-32bit.zip") + set(ARCHIVE "strawberry-perl-${PERL_VERSION}-32bit.zip") set(HASH d353d3dc743ebdc6d1e9f6f2b7a6db3c387c1ce6c890bae8adc8ae5deae8404f4c5e3cf249d1e151e7256d4c5ee9cd317e6c41f3b6f244340de18a24b938e0c4) elseif(VAR MATCHES "NASM") set(PROGNAME nasm) - set(PATHS ${DOWNLOADS}/tools/nasm/nasm-2.14.02) + set(NASM_VERSION 2.14.02) + set(PATHS ${DOWNLOADS}/tools/nasm/nasm-${NASM_VERSION}) set(BREW_PACKAGE_NAME "nasm") set(APT_PACKAGE_NAME "nasm") set(URL - "http://www.nasm.us/pub/nasm/releasebuilds/2.14.02/win32/nasm-2.14.02-win32.zip" - "http://fossies.org/windows/misc/nasm-2.14.02-win32.zip" + "https://www.nasm.us/pub/nasm/releasebuilds/${NASM_VERSION}/win32/nasm-${NASM_VERSION}-win32.zip" + "https://fossies.org/windows/misc/nasm-${NASM_VERSION}-win32.zip" ) - set(ARCHIVE "nasm-2.14.02-win32.zip") + set(ARCHIVE "nasm-${NASM_VERSION}-win32.zip") set(HASH a0f16a9f3b668b086e3c4e23a33ff725998e120f2e3ccac8c28293fd4faeae6fc59398919e1b89eed7461685d2730de02f2eb83e321f73609f35bf6b17a23d1e) elseif(VAR MATCHES "YASM") set(PROGNAME yasm) + set(YASM_VERSION 1.3.0.6.g1962) set(SUBDIR 1.3.0.6) - set(PATHS ${DOWNLOADS}/tools/yasm/${SUBDIR}) set(BREW_PACKAGE_NAME "yasm") set(APT_PACKAGE_NAME "yasm") - set(URL "https://www.tortall.net/projects/yasm/snapshots/v1.3.0.6.g1962/yasm-1.3.0.6.g1962.exe") - set(ARCHIVE "yasm-1.3.0.6.g1962.exe") + set(URL "https://www.tortall.net/projects/yasm/snapshots/v${YASM_VERSION}/yasm-${YASM_VERSION}.exe") + set(ARCHIVE "yasm-${YASM_VERSION}.exe") set(_vfa_RENAME "yasm.exe") set(NOEXTRACT ON) set(HASH c1945669d983b632a10c5ff31e86d6ecbff143c3d8b2c433c0d3d18f84356d2b351f71ac05fd44e5403651b00c31db0d14615d7f9a6ecce5750438d37105c55b) elseif(VAR MATCHES "GIT") set(PROGNAME git) if(CMAKE_HOST_WIN32) - set(SUBDIR "git-2.26.2-1-windows") - set(URL "https://github.com/git-for-windows/git/releases/download/v2.26.2.windows.1/PortableGit-2.26.2-32-bit.7z.exe") - set(ARCHIVE "PortableGit-2.26.2-32-bit.7z.exe") + set(GIT_VERSION 2.26.2) + set(SUBDIR "git-${GIT_VERSION}-1-windows") + set(URL "https://github.com/git-for-windows/git/releases/download/v${GIT_VERSION}.windows.1/PortableGit-${GIT_VERSION}-32-bit.7z.exe") + set(ARCHIVE "PortableGit-${GIT_VERSION}-32-bit.7z.exe") set(HASH d3cb60d62ca7b5d05ab7fbed0fa7567bec951984568a6c1646842a798c4aaff74bf534cf79414a6275c1927081a11b541d09931c017bf304579746e24fe57b36) set(PATHS "${DOWNLOADS}/tools/${SUBDIR}/mingw32/bin" @@ -129,29 +129,30 @@ function(vcpkg_find_acquire_program VAR) set(HASH "263e02bd79eee0cb7b664831b7898565c5656a046328d8f187ef7ae2a4d766991d477b190c9b425fcc960ab76f381cd3e396afb85cba7408ca9e74eb32c175db") endif() set(SUBDIR "${GN_VERSION}") - set(PATHS "${DOWNLOADS}/tools/gn/${SUBDIR}") set(URL "${CIPD_DOWNLOAD_GN}/${GN_PLATFORM}/+/${GN_VERSION}") set(ARCHIVE "gn-${GN_PLATFORM}.zip") elseif(VAR MATCHES "GO") set(PROGNAME go) - set(PATHS ${DOWNLOADS}/tools/go/go/bin) + set(SUBDIR 1.13.1.windows-386) + set(PATHS ${DOWNLOADS}/tools/go/${SUBDIR}/go/bin) set(BREW_PACKAGE_NAME "go") set(APT_PACKAGE_NAME "golang-go") - set(URL "https://dl.google.com/go/go1.13.1.windows-386.zip") - set(ARCHIVE "go1.13.1.windows-386.zip") + set(URL "https://dl.google.com/go/go${SUBDIR}.zip") + set(ARCHIVE "go${SUBDIR}.zip") set(HASH 2ab0f07e876ad98d592351a8808c2de42351ab387217e088bc4c5fa51d6a835694c501e2350802323b55a27dc0157f8b70045597f789f9e50f5ceae50dea3027) elseif(VAR MATCHES "PYTHON3") if(CMAKE_HOST_WIN32) set(PROGNAME python) + set(PYTHON_VERSION 3.8.3) if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) - set(SUBDIR "python-3.8.3-x86") - set(URL "https://www.python.org/ftp/python/3.8.3/python-3.8.3-embed-win32.zip") - set(ARCHIVE "python-3.8.3-embed-win32.zip") + set(SUBDIR "python-${PYTHON_VERSION}-x86") + set(URL "https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}-embed-win32.zip") + set(ARCHIVE "python-${PYTHON_VERSION}-embed-win32.zip") set(HASH 8c9078f55b1b5d694e0e809eee6ccf8a6e15810dd4649e8ae1209bff30e102d49546ce970a5d519349ca7759d93146f459c316dc440737171f018600255dcd0a) else() - set(SUBDIR "python-3.8.3-x64") - set(URL "https://www.python.org/ftp/python/3.8.3/python-3.8.3-embed-amd64.zip") - set(ARCHIVE "python-3.8.3-embed-amd64.zip") + set(SUBDIR "python-${PYTHON_VERSION}-x64") + set(URL "https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}-embed-amd64.zip") + set(ARCHIVE "python-${PYTHON_VERSION}-embed-amd64.zip") set(HASH a322fc925167edb1897764297cf47e294ad3f52c109a05f8911412807eb83e104f780e9fe783b17fe0d9b18b7838797c15e9b0805dab759829f77a9bc0159424) endif() set(PATHS ${DOWNLOADS}/tools/python/${SUBDIR}) @@ -164,15 +165,16 @@ function(vcpkg_find_acquire_program VAR) elseif(VAR MATCHES "PYTHON2") if(CMAKE_HOST_WIN32) set(PROGNAME python) + set(PYTHON_VERSION 2.7.16) if (VCPKG_TARGET_ARCHITECTURE STREQUAL x86) - set(SUBDIR "python-2.7.16-x86") - set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.msi") - set(ARCHIVE "python-2.7.16.msi") + set(SUBDIR "python-${PYTHON_VERSION}-x86") + set(URL "https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}.msi") + set(ARCHIVE "python-${PYTHON_VERSION}.msi") set(HASH c34a6fa2438682104dccb53650a2bdb79eac7996deff075201a0f71bb835d60d3ed866652a1931f15a29510fe8e1009ac04e423b285122d2e5747fefc4c10254) else() - set(SUBDIR "python-2.7.16-x64") - set(URL "https://www.python.org/ftp/python/2.7.16/python-2.7.16.amd64.msi") - set(ARCHIVE "python-2.7.16.amd64.msi") + set(SUBDIR "python-${PYTHON_VERSION}-x64") + set(URL "https://www.python.org/ftp/python/${PYTHON_VERSION}/python-${PYTHON_VERSION}.amd64.msi") + set(ARCHIVE "python-${PYTHON_VERSION}.amd64.msi") set(HASH 47c1518d1da939e3ba6722c54747778b93a44c525bcb358b253c23b2510374a49a43739c8d0454cedade858f54efa6319763ba33316fdc721305bc457efe4ffb) endif() set(PATHS ${DOWNLOADS}/tools/python/${SUBDIR}) @@ -192,32 +194,31 @@ function(vcpkg_find_acquire_program VAR) set(SUBDIR "jom-1.1.3") set(PATHS ${DOWNLOADS}/tools/jom/${SUBDIR}) set(URL - "http://download.qt.io/official_releases/jom/jom_1_1_3.zip" - "http://mirrors.ocf.berkeley.edu/qt/official_releases/jom/jom_1_1_3.zip" + "https://download.qt.io/official_releases/jom/jom_1_1_3.zip" + "https://mirrors.ocf.berkeley.edu/qt/official_releases/jom/jom_1_1_3.zip" ) set(ARCHIVE "jom_1_1_3.zip") set(HASH 5b158ead86be4eb3a6780928d9163f8562372f30bde051d8c281d81027b766119a6e9241166b91de0aa6146836cea77e5121290e62e31b7a959407840fc57b33) elseif(VAR MATCHES "7Z") set(PROGNAME 7z) - set(PATHS "${PROGRAM_FILES_PLATFORM_BITNESS}/7-Zip" "${PROGRAM_FILES_32_BIT}/7-Zip" "${DOWNLOADS}/tools/7z/Files/7-Zip") + set(PATHS "${DOWNLOADS}/tools/7z/Files/7-Zip") set(URL "https://7-zip.org/a/7z1900.msi") set(ARCHIVE "7z1900.msi") set(HASH f73b04e2d9f29d4393fde572dcf3c3f0f6fa27e747e5df292294ab7536ae24c239bf917689d71eb10cc49f6b9a4ace26d7c122ee887d93cc935f268c404e9067) elseif(VAR MATCHES "NINJA") set(PROGNAME ninja) set(NINJA_VERSION 1.10.0) - set(SUBDIR "ninja-${NINJA_VERSION}") set(_vfa_SUPPORTED ON) if(CMAKE_HOST_WIN32) set(ARCHIVE "ninja-win-${NINJA_VERSION}.zip") - set(PATHS "${DOWNLOADS}/tools/${SUBDIR}-windows") - list(APPEND PATHS "${DOWNLOADS}/tools/ninja/${SUBDIR}") + set(SUBDIR "${NINJA_VERSION}-windows") set(URL "https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/ninja-win.zip") set(HASH a196e243c53daa1df9d287af658d6d38d6b830b614f2d5704e8c88ffc61f179a533ae71cdb6d0d383d1559d65dacccbaaab270fb2a33aa211e5dba42ff046f97) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(ARCHIVE "ninja-mac-${NINJA_VERSION}.zip") set(URL "https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/ninja-mac.zip") - set(PATHS "${DOWNLOADS}/tools/${SUBDIR}-osx") + set(SUBDIR "${NINJA_VERSION}-osx") + set(PATHS "${DOWNLOADS}/tools/ninja-${NINJA_VERSION}-osx") set(HASH 619a1924067a0b30fc5f8887f868d3ee5481838d2f0f158d031f7614a2a10b95a73d4a56b658d5d560283ebf809e2e536b968c6c01ff0108075c3f393f5780ba) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD") set(PATHS "${DOWNLOADS}/tools/${SUBDIR}-freebsd") @@ -225,14 +226,15 @@ function(vcpkg_find_acquire_program VAR) else() set(ARCHIVE "ninja-linux-${NINJA_VERSION}.zip") set(URL "https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/ninja-linux.zip") - set(PATHS "${DOWNLOADS}/tools/${SUBDIR}-linux") + set(SUBDIR "${NINJA_VERSION}-linux") + set(PATHS "${DOWNLOADS}/tools/ninja-${NINJA_VERSION}-linux") set(HASH ffb179ab8ea315167fcc99a8f13286e1363590185b18cf819cc73e09f2a7553790e9dc45fd1ccd0bd1d2dbf543aee3f6c0951cf9ce453a7168ffd2ac873cdd29) endif() set(VERSION_CMD --version) elseif(VAR MATCHES "NUGET") set(PROGNAME nuget) set(SUBDIR "5.5.1") - set(PATHS "${DOWNLOADS}/tools/nuget/${SUBDIR}") + set(PATHS "${DOWNLOADS}/tools/nuget-${SUBDIR}-windows") set(BREW_PACKAGE_NAME "nuget") set(URL "https://dist.nuget.org/win-x86-commandline/v5.5.1/nuget.exe") set(_vfa_RENAME "nuget.exe") @@ -284,9 +286,10 @@ function(vcpkg_find_acquire_program VAR) endif() elseif(VAR MATCHES "GPERF") set(PROGNAME gperf) + set(GPERF_VERSION 3.0.1) set(PATHS ${DOWNLOADS}/tools/gperf/bin) - set(URL "https://sourceforge.net/projects/gnuwin32/files/gperf/3.0.1/gperf-3.0.1-bin.zip/download") - set(ARCHIVE "gperf-3.0.1-bin.zip") + set(URL "https://sourceforge.net/projects/gnuwin32/files/gperf/${GPERF_VERSION}/gperf-${GPERF_VERSION}-bin.zip/download") + set(ARCHIVE "gperf-${GPERF_VERSION}-bin.zip") set(HASH 3f2d3418304390ecd729b85f65240a9e4d204b218345f82ea466ca3d7467789f43d0d2129fcffc18eaad3513f49963e79775b10cc223979540fa2e502fe7d4d9) elseif(VAR MATCHES "GASPREPROCESSOR") set(NOEXTRACT true) @@ -308,21 +311,23 @@ function(vcpkg_find_acquire_program VAR) set(HASH 74f0fa29b5991ca655e34a9d1000d47d4272e071113fada86727ee943d913177ae96dc3d435eaf494d2158f37560cd4c2c5274176946ebdb17bf2354ced1c516) elseif(VAR MATCHES "SCONS") set(PROGNAME scons) + set(SCONS_VERSION 3.0.1) + set(SUBDIR ${SCONS_VERSION}) set(REQUIRED_INTERPRETER PYTHON2) set(SCRIPTNAME "scons.py") - set(PATHS ${DOWNLOADS}/tools/scons) - set(URL "https://sourceforge.net/projects/scons/files/scons-local-3.0.1.zip/download") - set(ARCHIVE "scons-local-3.0.1.zip") + set(URL "https://sourceforge.net/projects/scons/files/scons-local-${SCONS_VERSION}.zip/download") + set(ARCHIVE "scons-local-${SCONS_VERSION}.zip") set(HASH fe121b67b979a4e9580c7f62cfdbe0c243eba62a05b560d6d513ac7f35816d439b26d92fc2d7b7d7241c9ce2a49ea7949455a17587ef53c04a5f5125ac635727) elseif(VAR MATCHES "SWIG") set(VERSION 4.0.2) set(PROGNAME swig) if(CMAKE_HOST_WIN32) - set(URL "https://sourceforge.net/projects/swig/files/swigwin/swigwin-${VERSION}/swigwin-${VERSION}.zip/download") + #set(URL "https://sourceforge.net/projects/swig/files/swigwin/swigwin-${VERSION}/swigwin-${VERSION}.zip/download") set(ARCHIVE "swigwin-${VERSION}.zip") set(HASH b8f105f9b9db6acc1f6e3741990915b533cd1bc206eb9645fd6836457fd30789b7229d2e3219d8e35f2390605ade0fbca493ae162ec3b4bc4e428b57155db03d) - set(SUBDIR "swigwin-${VERSION}") - set(PATHS "${DOWNLOADS}/tools/swig/${SUBDIR}/${SUBDIR}") + set(SUBDIR b8f105f9b9-f0518bc3b7/swigwin-${VERSION}) + #set(SUBDIR "swigwin-${VERSION}") + #set(PATHS "${DOWNLOADS}/tools/swig/swigwin-${VERSION}") else() #Not used set(_vfa_SUPPORTED TRUE) @@ -333,7 +338,8 @@ function(vcpkg_find_acquire_program VAR) set(PATHS "${DOWNLOADS}/tools/swig/${SUBDIR}") endif() set(SOURCEFORGE_ARGS - REPO swig + REPO swig/swigwin + REF swigwin-${VERSION} FILENAME "${ARCHIVE}" SHA512 "${HASH}" NO_REMOVE_ONE_LEVEL @@ -342,61 +348,67 @@ function(vcpkg_find_acquire_program VAR) elseif(VAR MATCHES "DOXYGEN") set(PROGNAME doxygen) set(DOXYGEN_VERSION 1.8.17) - set(PATHS ${DOWNLOADS}/tools/doxygen) - set(URL - "http://doxygen.nl/files/doxygen-${DOXYGEN_VERSION}.windows.bin.zip" - "https://sourceforge.net/projects/doxygen/files/rel-${DOXYGEN_VERSION}/doxygen-${DOXYGEN_VERSION}.windows.bin.zip") - set(ARCHIVE "doxygen-${DOXYGEN_VERSION}.windows.bin.zip") - set(HASH 6bac47ec552486783a70cc73b44cf86b4ceda12aba6b52835c2221712bd0a6c845cecec178c9ddaa88237f5a781f797add528f47e4ed017c7888eb1dd2bc0b4b) + set(SOURCEFORGE_ARGS + REPO doxygen + REF rel-${DOXYGEN_VERSION} + FILENAME "doxygen-${DOXYGEN_VERSION}.windows.bin.zip" + SHA512 6bac47ec552486783a70cc73b44cf86b4ceda12aba6b52835c2221712bd0a6c845cecec178c9ddaa88237f5a781f797add528f47e4ed017c7888eb1dd2bc0b4b + NO_REMOVE_ONE_LEVEL + WORKING_DIRECTORY "${DOWNLOADS}/tools/doxygen" + ) + set(SUBDIR 6bac47ec55-25c819fd77) elseif(VAR MATCHES "BAZEL") set(PROGNAME bazel) set(BAZEL_VERSION 0.25.2) - set(SUBDIR ${BAZEL_VERSION}) - set(PATHS ${DOWNLOADS}/tools/bazel/${SUBDIR}) set(_vfa_RENAME "bazel") if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") set(_vfa_SUPPORTED ON) - set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-linux-x86_64") - set(ARCHIVE "bazel-${BAZEL_VERSION}-linux-x86_64") + set(SUBDIR ${BAZEL_VERSION}-linux) + set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${SUBDIR}-x86_64") + set(ARCHIVE "bazel-${SUBDIR}-x86_64") set(NOEXTRACT ON) set(HASH db4a583cf2996aeb29fd008261b12fe39a4a5faf0fbf96f7124e6d3ffeccf6d9655d391378e68dd0915bc91c9e146a51fd9661963743857ca25179547feceab1) elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") set(_vfa_SUPPORTED ON) - set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-darwin-x86_64") - set(ARCHIVE "bazel-${BAZEL_VERSION}-darwin-x86_64") + set(SUBDIR ${BAZEL_VERSION}-darwin) + set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${SUBDIR}-x86_64") + set(ARCHIVE "bazel-${SUBDIR}-x86_64") set(NOEXTRACT ON) set(HASH 420a37081e6ee76441b0d92ff26d1715ce647737ce888877980d0665197b5a619d6afe6102f2e7edfb5062c9b40630a10b2539585e35479b780074ada978d23c) else() - set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${BAZEL_VERSION}-windows-x86_64.zip") - set(ARCHIVE "bazel-${BAZEL_VERSION}-windows-x86_64.zip") + set(SUBDIR ${BAZEL_VERSION}-windows) + set(URL "https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VERSION}/bazel-${SUBDIR}-x86_64.zip") + set(ARCHIVE "bazel-${SUBDIR}-x86_64.zip") set(HASH 6482f99a0896f55ef65739e7b53452fd9c0adf597b599d0022a5e0c5fa4374f4a958d46f98e8ba25af4b065adacc578bfedced483d8c169ea5cb1777a99eea53) endif() - # Download Tools elseif(VAR MATCHES "ARIA2") set(PROGNAME aria2c) - set(PATHS ${DOWNLOADS}/tools/aria2c/aria2-1.34.0-win-32bit-build1) - set(URL "https://github.com/aria2/aria2/releases/download/release-1.34.0/aria2-1.34.0-win-32bit-build1.zip") - set(ARCHIVE "aria2-1.34.0-win-32bit-build1.zip") + set(ARIA2_VERSION 1.34.0) + set(PATHS ${DOWNLOADS}/tools/aria2c/aria2-${ARIA2_VERSION}-win-32bit-build1) + set(URL "https://github.com/aria2/aria2/releases/download/release-${ARIA2_VERSION}/aria2-${ARIA2_VERSION}-win-32bit-build1.zip") + set(ARCHIVE "aria2-${ARIA2_VERSION}-win-32bit-build1.zip") set(HASH 2a5480d503ac6e8203040c7e516a3395028520da05d0ebf3a2d56d5d24ba5d17630e8f318dd4e3cc2094cc4668b90108fb58e8b986b1ffebd429995058063c27) elseif(VAR MATCHES "PKGCONFIG") set(PROGNAME pkg-config) + set(VERSION 0.29.2-1) + set(LIBWINPTHREAD_VERSION git-8.0.0.5906.c9a21571-1) if(ENV{PKG_CONFIG}) debug_message(STATUS "PKG_CONFIG found in ENV! Using $ENV{PKG_CONFIG}") set(PKGCONFIG $ENV{PKG_CONFIG} PARENT_SCOPE) return() elseif(CMAKE_HOST_WIN32) - set(PROG_PATH_SUBDIR "${DOWNLOADS}/tools/${PROGNAME}/0.29.2-1") + set(PROG_PATH_SUBDIR "${DOWNLOADS}/tools/${PROGNAME}/${VERSION}") set(PKGCONFIG "${PROG_PATH_SUBDIR}/mingw32/bin/pkg-config.exe") if(NOT EXISTS "${PKGCONFIG}") vcpkg_download_distfile(PKGCONFIG_ARCHIVE - URLS "https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-0.29.2-1-any.pkg.tar.xz" + URLS "https://repo.msys2.org/mingw/i686/mingw-w64-i686-pkg-config-${VERSION}-any.pkg.tar.xz" SHA512 3b1b706a24d9aef7bbdf3ce4427aaa813ba6fbd292ed9dda181b4300e117c3d59a159ddcca8b013fd01ce76da2d95d590314ff9628c0d68a6966bac4842540f0 - FILENAME mingw-w64-i686-pkg-config-0.29.2-1-any.pkg.tar.xz + FILENAME mingw-w64-i686-pkg-config-${VERSION}-any.pkg.tar.xz ) vcpkg_download_distfile(LIBWINPTHREAD_ARCHIVE - URLS "https://repo.msys2.org/mingw/i686/mingw-w64-i686-libwinpthread-git-8.0.0.5906.c9a21571-1-any.pkg.tar.zst" + URLS "https://repo.msys2.org/mingw/i686/mingw-w64-i686-libwinpthread-${LIBWINPTHREAD_VERSION}-any.pkg.tar.zst" SHA512 2c3d9e6b2eee6a4c16fd69ddfadb6e2dc7f31156627d85845c523ac85e5c585d4cfa978659b1fe2ec823d44ef57bc2b92a6127618ff1a8d7505458b794f3f01c - FILENAME mingw-w64-i686-libwinpthread-git-8.0.0.5906.c9a21571-1-any.pkg.tar.zst + FILENAME mingw-w64-i686-libwinpthread-${LIBWINPTHREAD_VERSION}-any.pkg.tar.zst ) file(REMOVE_RECURSE ${PROG_PATH_SUBDIR} ${PROG_PATH_SUBDIR}.tmp) file(MAKE_DIRECTORY ${PROG_PATH_SUBDIR}.tmp) @@ -475,6 +487,13 @@ function(vcpkg_find_acquire_program VAR) endif() endmacro() + if(NOT DEFINED PROG_PATH_SUBDIR) + set(PROG_PATH_SUBDIR "${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}") + endif() + if(DEFINED SUBDIR) + list(APPEND PATHS ${PROG_PATH_SUBDIR}) + endif() + do_find() if(NOT ${VAR}) if(NOT CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" AND NOT _vfa_SUPPORTED) @@ -499,7 +518,6 @@ function(vcpkg_find_acquire_program VAR) FILENAME ${ARCHIVE} ) - set(PROG_PATH_SUBDIR "${DOWNLOADS}/tools/${PROGNAME}/${SUBDIR}") file(MAKE_DIRECTORY ${PROG_PATH_SUBDIR}) if(DEFINED NOEXTRACT) if(DEFINED _vfa_RENAME) diff --git a/scripts/cmake/vcpkg_fixup_pkgconfig.cmake b/scripts/cmake/vcpkg_fixup_pkgconfig.cmake index 3e44ec172..2cc2dd04a 100644 --- a/scripts/cmake/vcpkg_fixup_pkgconfig.cmake +++ b/scripts/cmake/vcpkg_fixup_pkgconfig.cmake @@ -37,6 +37,8 @@ ## ## ## Examples ## Just call vcpkg_fixup_pkgconfig() after any install step which installs *.pc files. + +include(vcpkg_escape_regex_control_characters) function(vcpkg_fixup_pkgconfig_check_files pkg_cfg_cmd _file _config _system_libs _ignore_flags) # Setup pkg-config paths set(_VCPKG_INSTALLED_PKGCONF "${CURRENT_INSTALLED_DIR}") @@ -134,6 +136,7 @@ function(vcpkg_fixup_pkgconfig_check_files pkg_cfg_cmd _file _config _system_lib foreach(_search_path IN LISTS _pkg_lib_paths_output) debug_message("REMOVING:'${_search_path}'") debug_message("FROM:'${_pkg_libs_output}'") + vcpkg_escape_regex_control_characters(_search_path "${_search_path}") string(REGEX REPLACE "(^[\t ]*|[\t ]+|;[\t ]*)-L${_search_path}([\t ]+|[\t ]*$)" ";" _pkg_libs_output "${_pkg_libs_output}") # Remove search paths from libs endforeach() debug_message("LIBS AFTER -L<path> REMOVAL:'${_pkg_libs_output}'") @@ -254,14 +257,15 @@ function(vcpkg_fixup_pkgconfig) message(FATAL_ERROR "vcpkg_fixup_pkgconfig was passed extra arguments: ${_vfct_UNPARSED_ARGUMENTS}") endif() + vcpkg_escape_regex_control_characters(_vfpkg_ESCAPED_CURRENT_PACKAGES_DIR "${CURRENT_PACKAGES_DIR}") if(NOT _vfpkg_RELEASE_FILES) file(GLOB_RECURSE _vfpkg_RELEASE_FILES "${CURRENT_PACKAGES_DIR}/**/*.pc") - list(FILTER _vfpkg_RELEASE_FILES EXCLUDE REGEX "${CURRENT_PACKAGES_DIR}/debug/") + list(FILTER _vfpkg_RELEASE_FILES EXCLUDE REGEX "${_vfpkg_ESCAPED_CURRENT_PACKAGES_DIR}/debug/") endif() if(NOT _vfpkg_DEBUG_FILES) file(GLOB_RECURSE _vfpkg_DEBUG_FILES "${CURRENT_PACKAGES_DIR}/debug/**/*.pc") - list(FILTER _vfpkg_DEBUG_FILES INCLUDE REGEX "${CURRENT_PACKAGES_DIR}/debug/") + list(FILTER _vfpkg_DEBUG_FILES INCLUDE REGEX "${_vfpkg_ESCAPED_CURRENT_PACKAGES_DIR}/debug/") endif() vcpkg_find_acquire_program(PKGCONFIG) @@ -283,8 +287,8 @@ function(vcpkg_fixup_pkgconfig) string(REPLACE "${CURRENT_INSTALLED_DIR}" "\${prefix}" _contents "${_contents}") string(REPLACE "${_VCPKG_PACKAGES_DIR}" "\${prefix}" _contents "${_contents}") string(REPLACE "${_VCPKG_INSTALLED_DIR}" "\${prefix}" _contents "${_contents}") - string(REGEX REPLACE "^prefix=(\")?(\\\\)?\\\${prefix}(\")?" "prefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable - string(REGEX REPLACE "[\n]prefix=(\")?(\\\\)?\\\${prefix}(\")?" "\nprefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable + string(REGEX REPLACE "^prefix[ \t]*=[ \t]*(\")?(\\\\)?\\\${prefix}(\")?" "prefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable + string(REGEX REPLACE "[\n]prefix[ \t]*=[ \t]*(\")?(\\\\)?\\\${prefix}(\")?" "\nprefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable file(WRITE "${_file}" "${_contents}") unset(PKG_LIB_SEARCH_PATH) endforeach() @@ -313,8 +317,8 @@ function(vcpkg_fixup_pkgconfig) string(REPLACE "debug/share" "../share" _contents "${_contents}") string(REPLACE "\${prefix}/share" "\${prefix}/../share" _contents "${_contents}") string(REPLACE "debug/lib" "lib" _contents "${_contents}") # the prefix will contain the debug keyword - string(REGEX REPLACE "^prefix=(\")?(\\\\)?\\\${prefix}(/debug)?(\")?" "prefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable - string(REGEX REPLACE "[\n]prefix=(\")?(\\\\)?\\\${prefix}(/debug)?(\")?" "\nprefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable + string(REGEX REPLACE "^prefix[ \t]*=[ \t]*(\")?(\\\\)?\\\${prefix}(/debug)?(\")?" "prefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable + string(REGEX REPLACE "[\n]prefix[ \t]*=[ \t]*(\")?(\\\\)?\\\${prefix}(/debug)?(\")?" "\nprefix=\${pcfiledir}/${RELATIVE_PC_PATH}" _contents "${_contents}") # make pc file relocatable string(REPLACE "\${prefix}/debug" "\${prefix}" _contents "${_contents}") # replace remaining debug paths if they exist. file(WRITE "${_file}" "${_contents}") unset(PKG_LIB_SEARCH_PATH) diff --git a/scripts/cmake/vcpkg_from_sourceforge.cmake b/scripts/cmake/vcpkg_from_sourceforge.cmake index 34b2a12b0..10dc8b623 100644 --- a/scripts/cmake/vcpkg_from_sourceforge.cmake +++ b/scripts/cmake/vcpkg_from_sourceforge.cmake @@ -65,6 +65,34 @@ ## * [tinyfiledialogs](https://github.com/Microsoft/vcpkg/blob/master/ports/tinyfiledialogs/portfile.cmake) function(vcpkg_from_sourceforge) + macro(check_file_content) + if (EXISTS ${ARCHIVE}) + file(SIZE ${ARCHIVE} DOWNLOAD_FILE_SIZE) + if (DOWNLOAD_FILE_SIZE LESS_EQUAL 1024) + file(READ ${ARCHIVE} _FILE_CONTENT_) + string(FIND "${_FILE_CONTENT_}" "the Sourceforge site is currently in Disaster Recovery mode." OUT_CONTENT) + message("OUT_CONTENT: ${OUT_CONTENT}") + if (OUT_CONTENT EQUAL -1) + set(download_success 1) + else() + file(REMOVE ${ARCHIVE}) + endif() + endif() + endif() + endmacro() + + macro(check_file_sha512) + file(SHA512 ${ARCHIVE} FILE_HASH) + if(NOT FILE_HASH STREQUAL _vdus_SHA512) + message(FATAL_ERROR + "\nFile does not have expected hash:\n" + " File path: [ ${ARCHIVE} ]\n" + " Expected hash: [ ${_vdus_SHA512} ]\n" + " Actual hash: [ ${FILE_HASH} ]\n" + "${CUSTOM_ERROR_ADVICE}\n") + endif() + endmacro() + set(booleanValueArgs DISABLE_SSL NO_REMOVE_ONE_LEVEL) set(oneValueArgs OUT_SOURCE_PATH REPO REF SHA512 FILENAME WORKING_DIRECTORY) set(multipleValuesArgs PATCHES) @@ -151,13 +179,15 @@ function(vcpkg_from_sourceforge) message(STATUS "Trying auto-select mirror...") vcpkg_download_distfile(ARCHIVE URLS "${DOWNLOAD_URL}" - SHA512 "${_vdus_SHA512}" + SKIP_SHA512 FILENAME "${_vdus_FILENAME}" SILENT_EXIT ) - - if (EXISTS ${ARCHIVE}) - set(download_success 1) + check_file_content() + if (download_success) + check_file_sha512() + else() + message(STATUS "The default mirror is in Disaster Recovery mode, trying other mirrors...") endif() if (NOT download_success EQUAL 1) @@ -166,13 +196,19 @@ function(vcpkg_from_sourceforge) message(STATUS "Trying mirror ${SOURCEFORGE_MIRROR}...") vcpkg_download_distfile(ARCHIVE URLS "${DOWNLOAD_URL}" - SHA512 "${_vdus_SHA512}" + SKIP_SHA512 FILENAME "${_vdus_FILENAME}" SILENT_EXIT ) if (EXISTS ${ARCHIVE}) set(download_success 1) + check_file_content() + if (download_success) + check_file_sha512() + else() + message(STATUS "Mirror ${SOURCEFORGE_MIRROR} is in Disaster Recovery mode, trying other mirrors...") + endif() break() endif() endforeach() diff --git a/scripts/test_ports/vcpkg-find-acquire-program/CONTROL b/scripts/test_ports/vcpkg-find-acquire-program/CONTROL new file mode 100644 index 000000000..6f248be58 --- /dev/null +++ b/scripts/test_ports/vcpkg-find-acquire-program/CONTROL @@ -0,0 +1,4 @@ +Source: vcpkg-find-acquire-program
+Version: 0
+Description: Test port to exercise vcpkg_find_acquire_program
+Supports: windows
diff --git a/scripts/test_ports/vcpkg-find-acquire-program/portfile.cmake b/scripts/test_ports/vcpkg-find-acquire-program/portfile.cmake new file mode 100644 index 000000000..88a4856c5 --- /dev/null +++ b/scripts/test_ports/vcpkg-find-acquire-program/portfile.cmake @@ -0,0 +1,21 @@ +set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
+
+if(CMAKE_HOST_WIN32)
+ foreach(PROG GO JOM NASM PERL YASM GIT PYTHON3 PYTHON2 RUBY 7Z NUGET FLEX BISON GPERF GASPREPROCESSOR DARK SCONS SWIG DOXYGEN ARIA2 PKGCONFIG)
+ vcpkg_find_acquire_program(${PROG})
+ foreach(SUBPROG IN LISTS ${PROG})
+ if(NOT EXISTS "${SUBPROG}")
+ message(FATAL_ERROR "Program ${SUBPROG} did not exist.")
+ endif()
+ endforeach()
+ endforeach()
+endif()
+
+foreach(PROG GN NINJA MESON BAZEL)
+ vcpkg_find_acquire_program(${PROG})
+ foreach(SUBPROG IN LISTS ${PROG})
+ if(NOT EXISTS "${SUBPROG}")
+ message(FATAL_ERROR "Program ${SUBPROG} did not exist.")
+ endif()
+ endforeach()
+endforeach()
diff --git a/toolsrc/include/vcpkg/base/expected.h b/toolsrc/include/vcpkg/base/expected.h index d8a2cacaa..fcf37bcaf 100644 --- a/toolsrc/include/vcpkg/base/expected.h +++ b/toolsrc/include/vcpkg/base/expected.h @@ -4,6 +4,7 @@ #include <vcpkg/base/stringliteral.h> #include <system_error> +#include <type_traits> namespace vcpkg { @@ -111,7 +112,7 @@ namespace vcpkg ExpectedT(S&& s, ExpectedRightTag = {}) : m_s(std::move(s)) { } ExpectedT(const T& t, ExpectedLeftTag = {}) : m_t(t) { } - template<class = std::enable_if<!std::is_reference_v<T>>> + template<class = std::enable_if<!std::is_reference<T>::value>> ExpectedT(T&& t, ExpectedLeftTag = {}) : m_t(std::move(t)) { } diff --git a/toolsrc/include/vcpkg/base/span.h b/toolsrc/include/vcpkg/base/span.h index 221cccc8c..a66205332 100644 --- a/toolsrc/include/vcpkg/base/span.h +++ b/toolsrc/include/vcpkg/base/span.h @@ -3,6 +3,7 @@ #include <array> #include <cstddef> #include <initializer_list> +#include <type_traits> #include <vector> namespace vcpkg @@ -29,7 +30,7 @@ namespace vcpkg { } - template<size_t N, class = std::enable_if_t<std::is_const_v<T>>> + template<size_t N, class = std::enable_if_t<std::is_const<T>::value>> constexpr Span(std::remove_const_t<T> (&arr)[N]) noexcept : m_ptr(arr), m_count(N) { } diff --git a/toolsrc/include/vcpkg/dependencies.h b/toolsrc/include/vcpkg/dependencies.h index 3cca364e7..080a28f52 100644 --- a/toolsrc/include/vcpkg/dependencies.h +++ b/toolsrc/include/vcpkg/dependencies.h @@ -67,6 +67,7 @@ namespace vcpkg::Dependencies std::string displayname() const; const std::string& public_abi() const; + bool has_package_abi() const; const Build::PreBuildInfo& pre_build_info(LineInfo linfo) const; PackageSpec spec; diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index a2b9317a2..083861bc2 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -195,7 +195,9 @@ namespace vcpkg::Test ec.assign(errno, std::system_category()); } #else - (void)(target, file, ec); + (void)target; + (void)file; + (void)ec; vcpkg::Checks::exit_with_message(VCPKG_LINE_INFO, no_filesystem_message); #endif } @@ -217,7 +219,9 @@ namespace vcpkg::Test #elif FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_UNIX ::vcpkg::Test::create_symlink(target, file, ec); #else - (void)(target, file, ec); + (void)target; + (void)file; + (void)ec; vcpkg::Checks::exit_with_message(VCPKG_LINE_INFO, no_filesystem_message); #endif } diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp index 15a37a8b4..91f22bd2f 100644 --- a/toolsrc/src/vcpkg/base/files.cpp +++ b/toolsrc/src/vcpkg/base/files.cpp @@ -601,7 +601,7 @@ namespace vcpkg::Files std::error_code& ec) override { this->rename(oldpath, newpath, ec); - (void)(temp_suffix); + (void)temp_suffix; #if !defined(_WIN32) if (ec) { diff --git a/toolsrc/src/vcpkg/base/system.print.cpp b/toolsrc/src/vcpkg/base/system.print.cpp index 7366a810f..458f53155 100644 --- a/toolsrc/src/vcpkg/base/system.print.cpp +++ b/toolsrc/src/vcpkg/base/system.print.cpp @@ -22,7 +22,7 @@ namespace vcpkg::System #else // TODO: add color handling code // it should probably use VT-220 codes - (void)(c); + (void)c; System::print2(message); #endif } diff --git a/toolsrc/src/vcpkg/binarycaching.cpp b/toolsrc/src/vcpkg/binarycaching.cpp index 2cd9d1101..6b17461cc 100644 --- a/toolsrc/src/vcpkg/binarycaching.cpp +++ b/toolsrc/src/vcpkg/binarycaching.cpp @@ -207,7 +207,7 @@ namespace for (auto&& action : plan.install_actions) { - if (action.build_options.editable == Build::Editable::YES) continue; + if (!action.has_package_abi()) continue; auto& spec = action.spec; fs.remove_all(paths.package_dir(spec), VCPKG_LINE_INFO); diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index f163ef314..a0ff09327 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -871,6 +871,7 @@ namespace vcpkg::Build abi_tag_entries.emplace_back("features", Strings::join(";", sorted_feature_list)); if (action.build_options.use_head_version == UseHeadVersion::YES) abi_tag_entries.emplace_back("head", ""); + if (action.build_options.editable == Editable::YES) abi_tag_entries.emplace_back("editable", ""); Util::sort(abi_tag_entries); @@ -1019,7 +1020,7 @@ namespace vcpkg::Build std::error_code ec; const fs::path abi_package_dir = paths.package_dir(spec) / "share" / spec.name(); const fs::path abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt"; - if (action.build_options.editable == Build::Editable::NO) + if (action.has_package_abi()) { auto restore = binaries_provider.try_restore(paths, action); if (restore == RestoreResult::build_failed) @@ -1044,7 +1045,7 @@ namespace vcpkg::Build fs.copy_file(abi_file, abi_file_in_package, fs::copy_options::none, ec); Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", fs::u8string(abi_file_in_package)); - if (action.build_options.editable == Build::Editable::NO && result.code == BuildResult::SUCCEEDED) + if (action.has_package_abi() && result.code == BuildResult::SUCCEEDED) { binaries_provider.push_success(paths, action); } @@ -1089,7 +1090,7 @@ namespace vcpkg::Build #if defined(_WIN32) auto vcpkg_update_cmd = ".\\vcpkg"; #else - auto vcpkg_update_cmd = ".\/vcpkg"; + auto vcpkg_update_cmd = "./vcpkg"; #endif return Strings::format("Please ensure you're using the latest portfiles with `%s update`, then\n" "submit an issue at https://github.com/Microsoft/vcpkg/issues including:\n" diff --git a/toolsrc/src/vcpkg/commands.create.cpp b/toolsrc/src/vcpkg/commands.create.cpp index 3dba465af..b14b47a8f 100644 --- a/toolsrc/src/vcpkg/commands.create.cpp +++ b/toolsrc/src/vcpkg/commands.create.cpp @@ -20,7 +20,7 @@ namespace vcpkg::Commands::Create int perform(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); + (void)args.parse_arguments(COMMAND_STRUCTURE); const std::string port_name = args.command_arguments.at(0); const std::string url = args.command_arguments.at(1); diff --git a/toolsrc/src/vcpkg/commands.fetch.cpp b/toolsrc/src/vcpkg/commands.fetch.cpp index e4688fb0d..68df98700 100644 --- a/toolsrc/src/vcpkg/commands.fetch.cpp +++ b/toolsrc/src/vcpkg/commands.fetch.cpp @@ -16,8 +16,7 @@ namespace vcpkg::Commands::Fetch void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); - + (void)args.parse_arguments(COMMAND_STRUCTURE); const std::string tool = args.command_arguments[0]; const fs::path tool_path = paths.get_tool_exe(tool); System::print2(fs::u8string(tool_path), '\n'); diff --git a/toolsrc/src/vcpkg/commands.hash.cpp b/toolsrc/src/vcpkg/commands.hash.cpp index 3b93b09bd..6b2e81c12 100644 --- a/toolsrc/src/vcpkg/commands.hash.cpp +++ b/toolsrc/src/vcpkg/commands.hash.cpp @@ -18,7 +18,7 @@ namespace vcpkg::Commands::Hash void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); + (void)args.parse_arguments(COMMAND_STRUCTURE); const fs::path file_to_hash = args.command_arguments[0]; diff --git a/toolsrc/src/vcpkg/commands.integrate.cpp b/toolsrc/src/vcpkg/commands.integrate.cpp index 200c18e8b..3a682b4c9 100644 --- a/toolsrc/src/vcpkg/commands.integrate.cpp +++ b/toolsrc/src/vcpkg/commands.integrate.cpp @@ -533,7 +533,7 @@ With a project open, go to Tools->NuGet Package Manager->Package Manager Console void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); + (void)args.parse_arguments(COMMAND_STRUCTURE); if (args.command_arguments[0] == Subcommand::INSTALL) { diff --git a/toolsrc/src/vcpkg/commands.owns.cpp b/toolsrc/src/vcpkg/commands.owns.cpp index bb5e19715..8bd020108 100644 --- a/toolsrc/src/vcpkg/commands.owns.cpp +++ b/toolsrc/src/vcpkg/commands.owns.cpp @@ -33,7 +33,7 @@ namespace vcpkg::Commands::Owns void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); + (void)args.parse_arguments(COMMAND_STRUCTURE); const StatusParagraphs status_db = database_load_check(paths); search_file(paths, args.command_arguments[0], status_db); diff --git a/toolsrc/src/vcpkg/commands.porthistory.cpp b/toolsrc/src/vcpkg/commands.porthistory.cpp index 9e4cb2fe8..4313ab647 100644 --- a/toolsrc/src/vcpkg/commands.porthistory.cpp +++ b/toolsrc/src/vcpkg/commands.porthistory.cpp @@ -84,8 +84,7 @@ namespace vcpkg::Commands::PortHistory void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); - + (void)args.parse_arguments(COMMAND_STRUCTURE); std::string port_name = args.command_arguments.at(0); std::vector<PortControlVersion> versions = read_versions_from_log(paths, port_name); System::print2(" version date vcpkg commit\n"); diff --git a/toolsrc/src/vcpkg/commands.portsdiff.cpp b/toolsrc/src/vcpkg/commands.portsdiff.cpp index d470470cd..a25d441c8 100644 --- a/toolsrc/src/vcpkg/commands.portsdiff.cpp +++ b/toolsrc/src/vcpkg/commands.portsdiff.cpp @@ -133,8 +133,7 @@ namespace vcpkg::Commands::PortsDiff void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); - + (void)args.parse_arguments(COMMAND_STRUCTURE); const fs::path& git_exe = paths.get_tool_exe(Tools::GIT); const std::string git_commit_id_for_previous_snapshot = args.command_arguments.at(0); diff --git a/toolsrc/src/vcpkg/commands.upgrade.cpp b/toolsrc/src/vcpkg/commands.upgrade.cpp index dd42d76c4..5e9ed7ce2 100644 --- a/toolsrc/src/vcpkg/commands.upgrade.cpp +++ b/toolsrc/src/vcpkg/commands.upgrade.cpp @@ -81,41 +81,46 @@ namespace vcpkg::Commands::Upgrade else { std::vector<PackageSpec> not_installed; - std::vector<PackageSpec> no_portfile; + std::vector<PackageSpec> no_control_file; std::vector<PackageSpec> to_upgrade; std::vector<PackageSpec> up_to_date; for (auto&& spec : specs) { - auto it = status_db.find_installed(spec); - if (it == status_db.end()) + bool skip_version_check = false; + auto installed_status = status_db.find_installed(spec); + if (installed_status == status_db.end()) { not_installed.push_back(spec); + skip_version_check = true; } - auto maybe_scfl = provider.get_control_file(spec.name()); - if (auto p_scfl = maybe_scfl.get()) + auto maybe_control_file = provider.get_control_file(spec.name()); + if (!maybe_control_file.has_value()) { - if (it != status_db.end()) - { - if (p_scfl->source_control_file->core_paragraph->version != (*it)->package.version) - { - to_upgrade.push_back(spec); - } - else - { - up_to_date.push_back(spec); - } - } + no_control_file.push_back(spec); + skip_version_check = true; + } + + if (skip_version_check) continue; + + const auto& control_file = maybe_control_file.value_or_exit(VCPKG_LINE_INFO); + const auto& control_paragraph = *control_file.source_control_file->core_paragraph; + auto control_version = VersionT(control_paragraph.version, control_paragraph.port_version); + const auto& installed_paragraph = (*installed_status)->package; + auto installed_version = VersionT(installed_paragraph.version, installed_paragraph.port_version); + if (control_version == installed_version) + { + up_to_date.push_back(spec); } else { - no_portfile.push_back(spec); + to_upgrade.push_back(spec); } } Util::sort(not_installed); - Util::sort(no_portfile); + Util::sort(no_control_file); Util::sort(up_to_date); Util::sort(to_upgrade); @@ -137,16 +142,17 @@ namespace vcpkg::Commands::Upgrade '\n'); } - if (!no_portfile.empty()) + if (!no_control_file.empty()) { - System::print2(System::Color::error, "The following packages do not have a valid portfile:\n"); + System::print2(System::Color::error, + "The following packages do not have a valid CONTROL or vcpkg.json:\n"); System::print2(Strings::join("", - no_portfile, + no_control_file, [](const PackageSpec& spec) { return " " + spec.to_string() + "\n"; }), '\n'); } - Checks::check_exit(VCPKG_LINE_INFO, not_installed.empty() && no_portfile.empty()); + Checks::check_exit(VCPKG_LINE_INFO, not_installed.empty() && no_control_file.empty()); if (to_upgrade.empty()) Checks::exit_success(VCPKG_LINE_INFO); diff --git a/toolsrc/src/vcpkg/commands.version.cpp b/toolsrc/src/vcpkg/commands.version.cpp index 62f1d89c6..c7e33ee65 100644 --- a/toolsrc/src/vcpkg/commands.version.cpp +++ b/toolsrc/src/vcpkg/commands.version.cpp @@ -64,7 +64,7 @@ namespace vcpkg::Commands::Version #if defined(_WIN32) auto bootstrap = ".\\bootstrap-vcpkg.bat"; #else - auto bootstrap = ".\/bootstrap-vcpkg.sh"; + auto bootstrap = "./bootstrap-vcpkg.sh"; #endif System::printf(System::Color::warning, "Warning: Different source is available for vcpkg (%d.%d.%d -> %d.%d.%d). Use " @@ -90,8 +90,7 @@ namespace vcpkg::Commands::Version void perform_and_exit(const VcpkgCmdArguments& args, Files::Filesystem&) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); - + (void)args.parse_arguments(COMMAND_STRUCTURE); System::print2("Vcpkg package management program version ", version(), "\n" diff --git a/toolsrc/src/vcpkg/commands.xvsinstances.cpp b/toolsrc/src/vcpkg/commands.xvsinstances.cpp index 91bd1b943..67f35f542 100644 --- a/toolsrc/src/vcpkg/commands.xvsinstances.cpp +++ b/toolsrc/src/vcpkg/commands.xvsinstances.cpp @@ -28,7 +28,8 @@ namespace vcpkg::Commands::X_VSInstances Checks::exit_success(VCPKG_LINE_INFO); #else - (void)(args, paths); + (void)args; + (void)paths; Checks::exit_with_message(VCPKG_LINE_INFO, "This command is not supported on non-windows platforms."); #endif } diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index 9b37fe6da..4d03eb263 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -260,7 +260,7 @@ namespace vcpkg::Dependencies #if defined(_WIN32) auto vcpkg_remove_cmd = ".\\vcpkg"; #else - auto vcpkg_remove_cmd = ".\/vcpkg"; + auto vcpkg_remove_cmd = "./vcpkg"; #endif if (!maybe_scfl) Checks::exit_with_message( @@ -421,6 +421,11 @@ namespace vcpkg::Dependencies default: Checks::unreachable(VCPKG_LINE_INFO); } } + bool InstallPlanAction::has_package_abi() const + { + if (!abi_info) return false; + return !abi_info.get()->package_abi.empty(); + } const Build::PreBuildInfo& InstallPlanAction::pre_build_info(LineInfo linfo) const { return *abi_info.value_or_exit(linfo).pre_build_info.get(); diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp index 60e636ed0..ded6592fb 100644 --- a/toolsrc/src/vcpkg/help.cpp +++ b/toolsrc/src/vcpkg/help.cpp @@ -109,7 +109,7 @@ namespace vcpkg::Help void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); + (void)args.parse_arguments(COMMAND_STRUCTURE); if (args.command_arguments.empty()) { diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp index c74b8541d..d5cd0a47f 100644 --- a/toolsrc/src/vcpkg/metrics.cpp +++ b/toolsrc/src/vcpkg/metrics.cpp @@ -380,9 +380,7 @@ namespace vcpkg::Metrics return; } -#if !defined(_WIN32) - (void)(payload); -#else +#if defined(_WIN32) HINTERNET connect = nullptr, request = nullptr; BOOL results = FALSE; @@ -464,13 +462,15 @@ namespace vcpkg::Metrics __debugbreak(); auto err = GetLastError(); std::cerr << "[DEBUG] failed to connect to server: " << err << "\n"; -#endif +#endif // NDEBUG } if (request) WinHttpCloseHandle(request); if (connect) WinHttpCloseHandle(connect); if (session) WinHttpCloseHandle(session); -#endif +#else // ^^^ _WIN32 // !_WIN32 vvv + (void)payload; +#endif // ^^^ !_WIN32 } void Metrics::flush(Files::Filesystem& fs) diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp index a067b8fc0..7b8e65ed6 100644 --- a/toolsrc/src/vcpkg/postbuildlint.cpp +++ b/toolsrc/src/vcpkg/postbuildlint.cpp @@ -556,7 +556,8 @@ namespace vcpkg::PostBuildLint return LintStatus::ERROR_DETECTED; } #endif - (void)expected_architecture, (void)files; + (void)expected_architecture; + (void)files; return LintStatus::SUCCESS; } diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp index ed26f4497..84d9eec78 100644 --- a/toolsrc/src/vcpkg/sourceparagraph.cpp +++ b/toolsrc/src/vcpkg/sourceparagraph.cpp @@ -182,7 +182,7 @@ namespace vcpkg #if defined(_WIN32) auto bootstrap = ".\\bootstrap-vcpkg.bat"; #else - auto bootstrap = ".\/bootstrap-vcpkg.sh"; + auto bootstrap = "./bootstrap-vcpkg.sh"; #endif System::print2("You may need to update the vcpkg binary; try running %s to update.\n\n", bootstrap); } diff --git a/toolsrc/src/vcpkg/tools.cpp b/toolsrc/src/vcpkg/tools.cpp index acfa9082b..5531a1dac 100644 --- a/toolsrc/src/vcpkg/tools.cpp +++ b/toolsrc/src/vcpkg/tools.cpp @@ -136,10 +136,7 @@ namespace vcpkg virtual const std::string& exe_stem() const = 0; virtual std::array<int, 3> default_min_version() const = 0; - virtual void add_special_paths(std::vector<fs::path>& out_candidate_paths) const - { - (void)(out_candidate_paths); - } + virtual void add_special_paths(std::vector<fs::path>& out_candidate_paths) const { (void)out_candidate_paths; } virtual Optional<std::string> get_version(const VcpkgPaths& paths, const fs::path& path_to_exe) const = 0; }; @@ -283,7 +280,7 @@ namespace vcpkg out_candidate_paths.push_back(*pf / "CMake" / "bin" / "cmake.exe"); #else // TODO: figure out if this should do anything on non-Windows - (void)(out_candidate_paths); + (void)out_candidate_paths; #endif } virtual Optional<std::string> get_version(const VcpkgPaths&, const fs::path& path_to_exe) const override @@ -342,7 +339,7 @@ CMake suite maintained and supported by Kitware (kitware.com/cmake). #ifndef _WIN32 cmd.path_arg(paths.get_tool_exe(Tools::MONO)); #else - (void)(paths); + (void)paths; #endif cmd.path_arg(path_to_exe); const auto rc = System::cmd_execute_and_capture_output(cmd.extract()); @@ -380,7 +377,7 @@ Type 'NuGet help <command>' for help on a specific command. out_candidate_paths.push_back(*pf / "git" / "cmd" / "git.exe"); #else // TODO: figure out if this should do anything on non-windows - (void)(out_candidate_paths); + (void)out_candidate_paths; #endif } @@ -441,7 +438,7 @@ Mono JIT compiler version 6.8.0.105 (Debian 6.8.0.105+dfsg-2 Wed Feb 26 23:23:50 virtual void add_special_paths(std::vector<fs::path>& out_candidate_paths) const override { - (void)(out_candidate_paths); + (void)out_candidate_paths; // TODO: Uncomment later // const std::vector<fs::path> from_path = Files::find_from_PATH("installerbase"); // candidate_paths.insert(candidate_paths.end(), from_path.cbegin(), from_path.cend()); diff --git a/toolsrc/src/vcpkg/update.cpp b/toolsrc/src/vcpkg/update.cpp index 2e88facfd..73958c540 100644 --- a/toolsrc/src/vcpkg/update.cpp +++ b/toolsrc/src/vcpkg/update.cpp @@ -53,7 +53,7 @@ namespace vcpkg::Update void perform_and_exit(const VcpkgCmdArguments& args, const VcpkgPaths& paths) { - (void)(args.parse_arguments(COMMAND_STRUCTURE)); + (void)args.parse_arguments(COMMAND_STRUCTURE); System::print2("Using local portfile versions. To update the local portfiles, use `git pull`.\n"); const StatusParagraphs status_db = database_load_check(paths); @@ -78,7 +78,7 @@ namespace vcpkg::Update #if defined(_WIN32) auto vcpkg_cmd = ".\\vcpkg"; #else - auto vcpkg_cmd = ".\/vcpkg"; + auto vcpkg_cmd = "./vcpkg"; #endif System::print2("\n" "To update these packages and all dependencies, run\n" |
