aboutsummaryrefslogtreecommitdiff
path: root/ports/coinutils
diff options
context:
space:
mode:
authorHan Hu <huhan@whu.edu.cn>2019-01-16 14:05:40 +0800
committerHan Hu <huhan@whu.edu.cn>2019-01-16 14:05:40 +0800
commitfca5cab9f094604b71c23ffd13fa7108c142d03b (patch)
tree0355377bf28663bf9fb0ce62aa480e99249432a1 /ports/coinutils
parent269450283bbc246fa0b9fb52de3406caf36833b0 (diff)
downloadvcpkg-fca5cab9f094604b71c23ffd13fa7108c142d03b.tar.gz
vcpkg-fca5cab9f094604b71c23ffd13fa7108c142d03b.zip
Port openmvg, included new ports of coin-or projects, lemon
Diffstat (limited to 'ports/coinutils')
-rw-r--r--ports/coinutils/CMakeLists.txt111
-rw-r--r--ports/coinutils/CONTROL3
-rw-r--r--ports/coinutils/Config.cmake.in5
-rw-r--r--ports/coinutils/portfile.cmake49
4 files changed, 168 insertions, 0 deletions
diff --git a/ports/coinutils/CMakeLists.txt b/ports/coinutils/CMakeLists.txt
new file mode 100644
index 000000000..953ab2b98
--- /dev/null
+++ b/ports/coinutils/CMakeLists.txt
@@ -0,0 +1,111 @@
+cmake_minimum_required(VERSION 3.11)
+
+project(CoinUtils LANGUAGES C CXX)
+
+set(PROJECT_VERSION 2.10.14)
+set(PROJECT_VERSION_MAJOR 2)
+set(PROJECT_VERSION_MINOR 10)
+set(PROJECT_VERSION_PATCH 14)
+
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
+set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+if(BUILD_SHARED_LIBS AND MSVC)
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif(BUILD_SHARED_LIBS AND MSVC)
+if(MSVC)
+ set(
+ CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275"
+ )
+endif(MSVC)
+if(APPLE)
+ set(
+ CMAKE_CXX_FLAGS
+ "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-unused-command-line-argument -Wno-unused-result -Wno-exceptions"
+ )
+ set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9"
+ CACHE STRING "Minimum OS X deployment version")
+endif(APPLE)
+
+set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
+# options
+option(BUILD_SHARED_LIBS "" ON)
+
+#
+# 设置用于 install 的变量
+#
+# Introduce variables: * CMAKE_INSTALL_LIBDIR * CMAKE_INSTALL_BINDIR
+include(GNUInstallDirs)
+
+# Include module with fuction 'write_basic_package_version_file'
+include(CMakePackageConfigHelpers)
+
+# Layout. This works for all platforms: * <prefix>/lib*/cmake/<PROJECT-NAME> *
+# <prefix>/lib*/ * <prefix>/include/
+set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
+set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+# Configuration
+set(version_config "${generated_dir}/${PROJECT_NAME}ConfigVersion.cmake")
+set(project_config "${generated_dir}/${PROJECT_NAME}Config.cmake")
+set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets")
+set(namespace "Coin::")
+
+#
+# Add sources
+#
+include_directories(CoinUtils/src)
+
+file(GLOB UTILS_SOURCES
+ CoinUtils/src/*.hpp
+ CoinUtils/src/*.cpp
+ CoinUtils/src/*.h)
+add_library(${PROJECT_NAME} ${UTILS_SOURCES})
+
+target_include_directories(${PROJECT_NAME}
+ PUBLIC $<INSTALL_INTERFACE:include/coin>)
+target_compile_definitions(${PROJECT_NAME}
+ PUBLIC
+ $<INSTALL_INTERFACE:-DHAVE_CMATH>
+ $<INSTALL_INTERFACE:-D_CRT_SECURE_NO_WARNINGS>)
+
+install(TARGETS ${PROJECT_NAME}
+ EXPORT "${TARGETS_EXPORT_NAME}"
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+ INCLUDES
+ DESTINATION include)
+
+install(DIRECTORY CoinUtils/src/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/coin
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "*.hpp")
+
+#
+# Install Libraries
+#
+# Configure '<PROJECT-NAME>ConfigVersion.cmake' Use: * PROJECT_VERSION
+write_basic_package_version_file("${version_config}"
+ COMPATIBILITY SameMajorVersion)
+
+# Configure '<PROJECT-NAME>Config.cmake' Use variables: * TARGETS_EXPORT_NAME *
+# PROJECT_NAME
+configure_package_config_file("Config.cmake.in"
+ "${project_config}"
+ INSTALL_DESTINATION
+ "${config_install_dir}")
+
+# Config * <prefix>/lib/cmake/Foo/FooConfig.cmake *
+# <prefix>/lib/cmake/Foo/FooConfigVersion.cmake
+install(FILES "${project_config}" "${version_config}"
+ DESTINATION "${config_install_dir}")
+
+# Config * <prefix>/lib/cmake/Foo/FooTargets.cmake
+install(EXPORT "${TARGETS_EXPORT_NAME}"
+ NAMESPACE "${namespace}"
+ DESTINATION "${config_install_dir}")
diff --git a/ports/coinutils/CONTROL b/ports/coinutils/CONTROL
new file mode 100644
index 000000000..64573dfb9
--- /dev/null
+++ b/ports/coinutils/CONTROL
@@ -0,0 +1,3 @@
+Source: coinutils
+Version: 2.10.14-0
+Description: CoinUtils (Coin-or Utilities) is an open-source collection of classes and functions that are generally useful to more than one COIN-OR project
diff --git a/ports/coinutils/Config.cmake.in b/ports/coinutils/Config.cmake.in
new file mode 100644
index 000000000..ec01d2e5b
--- /dev/null
+++ b/ports/coinutils/Config.cmake.in
@@ -0,0 +1,5 @@
+
+@PACKAGE_INIT@
+
+include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
+check_required_components("@PROJECT_NAME@")
diff --git a/ports/coinutils/portfile.cmake b/ports/coinutils/portfile.cmake
new file mode 100644
index 000000000..59582e800
--- /dev/null
+++ b/ports/coinutils/portfile.cmake
@@ -0,0 +1,49 @@
+# 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 coin-or/CoinUtils
+ REF releases/2.10.14
+ SHA512 2d5108e096f126cf98750a4892ca4d946d0bad41b65f29001c116c5ad15aa4900c3091d163fa16b6a55f0518344c6681ad95bbc6efa431c77aaaaa751494c48b
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/Config.cmake.in DESTINATION ${SOURCE_PATH})
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(VCPKG_LIBRARY_LINKAGE static)
+endif()
+
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS
+ -DBUILD_SHARED_LIBS=OFF
+ # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+vcpkg_copy_pdbs()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/CoinUtils")
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/coinutils RENAME copyright)
+
+# Post-build test for cmake libraries
+# vcpkg_test_cmake(PACKAGE_NAME coinutils)