Skip to content

Commit

Permalink
Vcpkg manifest (moja-global#122)
Browse files Browse the repository at this point in the history
* Fix win32u env, missing Poco::Mutex includes.

* Added vcpkg manifest files - can now built FLINT and dependencies (VS2022 only for now) using FLINT\vcpkg\vcpkg_setup_vs2022_win_x64.bat.

OpenSSL will occasionally fail to build on some machines - if this happens, keep re-running cmake until it gets through (could take several tries).

* Cleanup.

* Added VS2019 setup script, fixed 2022.
  • Loading branch information
mfellows authored May 25, 2023
1 parent 2c65c58 commit f0d82c1
Show file tree
Hide file tree
Showing 15 changed files with 413 additions and 4 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -219,3 +219,4 @@ ModelManifest.xml
/Spatial Data/TestTile/TestTile_034_001.bil
/Spatial Data/SLEEK_FSR/Spatial
/Source/cmake/RCa11116
/vcpkg/vcpkg
11 changes: 7 additions & 4 deletions Source/moja.core/src/environment_win32u.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,17 @@

namespace moja {

static std::string EnvironmentImpl::startProcessFolderImpl() {
static wchar_t path[512] = "";
std::string EnvironmentImpl::startProcessFolderImpl() {
static wchar_t path[512] = L"";
if (!path[0]) {
// Get directory this executable was launched from.
GetModuleFileNameW(NULL, path, sizeof(path) - 1);
GetModuleFileNameW(NULL, path, sizeof(path) / 2 - 1);
}

std::string result = "";
Poco::UnicodeConverter::toUTF8(path, result);
auto folder = Poco::Path(path).parent();
auto folder = Poco::Path(result).parent();

return folder.toString();
}

Expand Down
1 change: 1 addition & 0 deletions Source/moja.flint/include/moja/flint/writesystemconfig.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <moja/flint/modulebase.h>

#include <boost/iostreams/stream_buffer.hpp>
#include <Poco/Mutex.h>

namespace moja {
namespace flint {
Expand Down
1 change: 1 addition & 0 deletions Source/moja.flint/include/moja/flint/writevariablegrid.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "moja/flint/modulebase.h"

#include <boost/algorithm/string.hpp>
#include <Poco/Mutex.h>

#include <algorithm>
#include <unordered_map>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <moja/flint/modulebase.h>

#include <unordered_map>
#include <Poco/Mutex.h>

namespace moja {

Expand Down
195 changes: 195 additions & 0 deletions Source/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
{
"name": "moja",
"version": "1.0.6",
"builtin-baseline": "14e7bb4ae24616ec54ff6b2f6ef4e8659434ea44",
"vcpkg-configuration": {
"registries": [
{
"kind": "filesystem",
"path": "../vcpkg/registry",
"baseline": "default",
"packages": ["turtle", "zipper"]
},
{
"kind": "git",
"repository": "https://github.com/microsoft/vcpkg",
"baseline": "501db0f17ef6df184fcdbfbe0f87cde2313b6ab1",
"packages": ["openssl", "vcpkg-cmake-get-vars"]
}
]
},
"dependencies": [
"boost-iostreams",
"boost-log",
"boost-math",
"boost-program-options",
"boost-test",
"boost-ublas",
"fmt",
"gdal",
{"name": "hdf5", "features": ["szip", "zlib", "cpp"]},
"libpq",
"libpqxx",
{"name": "poco", "features": ["sqlite3"]},
"proj",
"proj4",
"sqlite3",
"turtle",
"zipper"
],
"overrides": [
{"name": "boost", "version": "1.77.0"},
{"name": "boost-accumulators", "version": "1.77.0"},
{"name": "boost-algorithm", "version": "1.77.0"},
{"name": "boost-align", "version": "1.77.0"},
{"name": "boost-any", "version": "1.77.0"},
{"name": "boost-array", "version": "1.77.0"},
{"name": "boost-asio", "version": "1.77.0"},
{"name": "boost-assert", "version": "1.77.0"},
{"name": "boost-assign", "version": "1.77.0"},
{"name": "boost-atomic", "version": "1.77.0"},
{"name": "boost-beast", "version": "1.77.0"},
{"name": "boost-bimap", "version": "1.77.0"},
{"name": "boost-bind", "version": "1.77.0"},
{"name": "boost-build", "version": "1.77.0"},
{"name": "boost-callable-traits", "version": "1.77.0"},
{"name": "boost-chrono", "version": "1.77.0"},
{"name": "boost-circular-buffer", "version": "1.77.0"},
{"name": "boost-compatibility", "version": "1.77.0"},
{"name": "boost-compute", "version": "1.77.0"},
{"name": "boost-concept-check", "version": "1.77.0"},
{"name": "boost-config", "version": "1.77.0"},
{"name": "boost-container", "version": "1.77.0"},
{"name": "boost-container-hash", "version": "1.77.0"},
{"name": "boost-context", "version": "1.77.0"},
{"name": "boost-contract", "version": "1.77.0"},
{"name": "boost-conversion", "version": "1.77.0"},
{"name": "boost-convert", "version": "1.77.0"},
{"name": "boost-core", "version": "1.77.0"},
{"name": "boost-coroutine", "version": "1.77.0"},
{"name": "boost-coroutine2", "version": "1.77.0"},
{"name": "boost-crc", "version": "1.77.0"},
{"name": "boost-date-time", "version": "1.77.0"},
{"name": "boost-describe", "version": "1.77.0"},
{"name": "boost-detail", "version": "1.77.0"},
{"name": "boost-di", "version": "1.2.0"},
{"name": "boost-dll", "version": "1.77.0"},
{"name": "boost-dynamic-bitset", "version": "1.77.0"},
{"name": "boost-endian", "version": "1.77.0"},
{"name": "boost-exception", "version": "1.77.0"},
{"name": "boost-fiber", "version": "1.77.0"},
{"name": "boost-filesystem", "version": "1.77.0"},
{"name": "boost-flyweight", "version": "1.77.0"},
{"name": "boost-foreach", "version": "1.77.0"},
{"name": "boost-format", "version": "1.77.0"},
{"name": "boost-function", "version": "1.77.0"},
{"name": "boost-function-types", "version": "1.77.0"},
{"name": "boost-functional", "version": "1.77.0"},
{"name": "boost-fusion", "version": "1.77.0"},
{"name": "boost-geometry", "version": "1.77.0"},
{"name": "boost-gil", "version": "1.77.0"},
{"name": "boost-graph", "version": "1.77.0"},
{"name": "boost-graph-parallel", "version": "1.77.0"},
{"name": "boost-hana", "version": "1.77.0"},
{"name": "boost-heap", "version": "1.77.0"},
{"name": "boost-histogram", "version": "1.77.0"},
{"name": "boost-hof", "version": "1.77.0"},
{"name": "boost-icl", "version": "1.77.0"},
{"name": "boost-integer", "version": "1.77.0"},
{"name": "boost-interprocess", "version": "1.77.0"},
{"name": "boost-interval", "version": "1.77.0"},
{"name": "boost-intrusive", "version": "1.77.0"},
{"name": "boost-io", "version": "1.77.0"},
{"name": "boost-iostreams", "version": "1.77.0"},
{"name": "boost-iterator", "version": "1.77.0"},
{"name": "boost-json", "version": "1.77.0"},
{"name": "boost-lambda", "version": "1.77.0"},
{"name": "boost-lambda2", "version": "1.77.0"},
{"name": "boost-leaf", "version": "1.77.0"},
{"name": "boost-lexical-cast", "version": "1.77.0"},
{"name": "boost-local-function", "version": "1.77.0"},
{"name": "boost-locale", "version": "1.77.0"},
{"name": "boost-lockfree", "version": "1.77.0"},
{"name": "boost-log", "version": "1.77.0"},
{"name": "boost-logic", "version": "1.77.0"},
{"name": "boost-math", "version": "1.77.0"},
{"name": "boost-metaparse", "version": "1.77.0"},
{"name": "boost-modular-build-helper", "version": "1.77.0"},
{"name": "boost-move", "version": "1.77.0"},
{"name": "boost-mp11", "version": "1.77.0"},
{"name": "boost-mpi", "version": "1.77.0"},
{"name": "boost-mpl", "version": "1.77.0"},
{"name": "boost-msm", "version": "1.77.0"},
{"name": "boost-multi-array", "version": "1.77.0"},
{"name": "boost-multi-index", "version": "1.77.0"},
{"name": "boost-multiprecision", "version": "1.77.0"},
{"name": "boost-nowide", "version": "1.77.0"},
{"name": "boost-numeric-conversion", "version": "1.77.0"},
{"name": "boost-odeint", "version": "1.77.0"},
{"name": "boost-optional", "version": "1.77.0"},
{"name": "boost-outcome", "version": "1.77.0"},
{"name": "boost-parameter", "version": "1.77.0"},
{"name": "boost-parameter-python", "version": "1.77.0"},
{"name": "boost-pfr", "version": "1.77.0"},
{"name": "boost-phoenix", "version": "1.77.0"},
{"name": "boost-poly-collection", "version": "1.77.0"},
{"name": "boost-polygon", "version": "1.77.0"},
{"name": "boost-pool", "version": "1.77.0"},
{"name": "boost-predef", "version": "1.77.0"},
{"name": "boost-preprocessor", "version": "1.77.0"},
{"name": "boost-process", "version": "1.77.0"},
{"name": "boost-program-options", "version": "1.77.0"},
{"name": "boost-property-map", "version": "1.77.0"},
{"name": "boost-property-map-parallel", "version": "1.77.0"},
{"name": "boost-property-tree", "version": "1.77.0"},
{"name": "boost-proto", "version": "1.77.0"},
{"name": "boost-ptr-container", "version": "1.77.0"},
{"name": "boost-python", "version": "1.77.0"},
{"name": "boost-qvm", "version": "1.77.0"},
{"name": "boost-random", "version": "1.77.0"},
{"name": "boost-range", "version": "1.77.0"},
{"name": "boost-ratio", "version": "1.77.0"},
{"name": "boost-rational", "version": "1.77.0"},
{"name": "boost-regex", "version": "1.77.0"},
{"name": "boost-safe-numerics", "version": "1.77.0"},
{"name": "boost-scope-exit", "version": "1.77.0"},
{"name": "boost-serialization", "version": "1.77.0"},
{"name": "boost-signals2", "version": "1.77.0"},
{"name": "boost-smart-ptr", "version": "1.77.0"},
{"name": "boost-sort", "version": "1.77.0"},
{"name": "boost-spirit", "version": "1.77.0"},
{"name": "boost-stacktrace", "version": "1.77.0"},
{"name": "boost-statechart", "version": "1.77.0"},
{"name": "boost-static-assert", "version": "1.77.0"},
{"name": "boost-static-string", "version": "1.77.0"},
{"name": "boost-stl-interfaces", "version": "1.77.0"},
{"name": "boost-system", "version": "1.77.0"},
{"name": "boost-test", "version": "1.77.0"},
{"name": "boost-thread", "version": "1.77.0"},
{"name": "boost-throw-exception", "version": "1.77.0"},
{"name": "boost-timer", "version": "1.77.0"},
{"name": "boost-tokenizer", "version": "1.77.0"},
{"name": "boost-tti", "version": "1.77.0"},
{"name": "boost-tuple", "version": "1.77.0"},
{"name": "boost-type-erasure", "version": "1.77.0"},
{"name": "boost-type-index", "version": "1.77.0"},
{"name": "boost-type-traits", "version": "1.77.0"},
{"name": "boost-typeof", "version": "1.77.0"},
{"name": "boost-ublas", "version": "1.77.0"},
{"name": "boost-uninstall", "version": "1.77.0"},
{"name": "boost-units", "version": "1.77.0"},
{"name": "boost-unordered", "version": "1.77.0"},
{"name": "boost-utility", "version": "1.77.0"},
{"name": "boost-uuid", "version": "1.77.0"},
{"name": "boost-variant", "version": "1.77.0"},
{"name": "boost-variant2", "version": "1.77.0"},
{"name": "boost-vcpkg-helpers", "version": "1.77.0"},
{"name": "boost-vmd", "version": "1.77.0"},
{"name": "boost-wave", "version": "1.77.0"},
{"name": "boost-winapi", "version": "1.77.0"},
{"name": "boost-xpressive", "version": "1.77.0"},
{"name": "boost-yap", "version": "1.77.0"},
{"name": "gdal", "version": "3.4.3"},
{"name": "openssl", "version-string": "3.0.2"}
]
}
3 changes: 3 additions & 0 deletions vcpkg/registry/ports/turtle/1.3.1_0/CONTROL
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Source: turtle
Version: 1.3.1
Description: Turtle is a C++ mock object library based on Boost with a focus on usability, simplicity and flexibility.
20 changes: 20 additions & 0 deletions vcpkg/registry/ports/turtle/1.3.1_0/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
#header-only library
include(vcpkg_common_functions)

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO mat007/turtle
REF 5c0f29012511339ba5cc2672f99a1356c5387b62
SHA512 d452fe35f5f87c6a0d77d95039ab1615830b2c78cf640a3d5703250cd3b7ff041b4782953e206526688e786bbae09aeea7b9905ef1e116bd38abb5512c26707e
HEAD_REF master
)

# Put the licence file where vcpkg expects it
file(INSTALL
${SOURCE_PATH}/LICENSE_1_0.txt
DESTINATION ${CURRENT_PACKAGES_DIR}/share/turtle RENAME copyright)

# Copy the turtle header files
file(INSTALL
${SOURCE_PATH}/include
DESTINATION ${CURRENT_PACKAGES_DIR} FILES_MATCHING PATTERN "*.hpp")
4 changes: 4 additions & 0 deletions vcpkg/registry/ports/zipper/1.0.1_0/CONTROL
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Source: zipper
Version: 1.0.1
Build-Depends: zlib
Description: C++ wrapper around minizip compression library
56 changes: 56 additions & 0 deletions vcpkg/registry/ports/zipper/1.0.1_0/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Common Ambient Variables:
# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
# PORT = current port name (zlib, etc)
# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
#

include(vcpkg_common_functions)

vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO sebastiandev/zipper
REF 11b1ac461dcff6c85306ef659bffa5bc92e8641c
SHA512 1c05320f0ce40028f730d3b73a10ced0c410f2fd612f87efefa52e44c41ebab35594a9c44902efaccd8b136cbf659828a8d1fcb80eea8691291c98a4cf76107f
)

vcpkg_download_distfile(MINIZIP_ARCHIVE
URLS "https://github.com/sebastiandev/minizip/archive/0b46a2b4ca317b80bc53594688883f7188ac4d08.tar.gz"
FILENAME "minizip.tar.gz"
SHA512 c88f7bbbf679830b2046ae295ece783c751cba98dd4cf4c27fd9e7cce05d8b4a5c717a672649a22ee845b140a665d2e18f5dfe30ac71fb226f21d46e6e66b970
)

file(REMOVE_RECURSE ${SOURCE_PATH}/minizip)

vcpkg_extract_source_archive(${MINIZIP_ARCHIVE} ${SOURCE_PATH})

file(RENAME ${SOURCE_PATH}/minizip-0b46a2b4ca317b80bc53594688883f7188ac4d08 ${SOURCE_PATH}/minizip)


if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
set(ST_BUILD_STATIC ON)
set(ST_BUILD_SHARED OFF)
else()
set(ST_BUILD_STATIC OFF)
set(ST_BUILD_SHARED ON)
endif()

vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA
OPTIONS -DBUILD_TEST=OFF
)

vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake)
vcpkg_copy_pdbs()

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)

# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/zipper RENAME copyright)
12 changes: 12 additions & 0 deletions vcpkg/registry/versions/baseline.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"default": {
"turtle": {
"baseline": "1.3.1",
"port-version": 0
},
"zipper": {
"baseline": "1.0.1",
"port-version": 0
}
}
}
9 changes: 9 additions & 0 deletions vcpkg/registry/versions/t-/turtle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"version": "1.3.1",
"port-version": 0,
"path": "$/ports/turtle/1.3.1_0"
}
]
}
9 changes: 9 additions & 0 deletions vcpkg/registry/versions/z-/zipper.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"version": "1.0.1",
"port-version": 0,
"path": "$/ports/zipper/1.0.1_0"
}
]
}
Loading

0 comments on commit f0d82c1

Please sign in to comment.