aboutsummaryrefslogtreecommitdiff
path: root/ports/coinutils
diff options
context:
space:
mode:
authorStefano Sinigardi <stesinigardi@hotmail.com>2019-06-01 00:48:17 +0200
committerVictor Romero <romerosanchezv@gmail.com>2019-05-31 15:48:17 -0700
commit5898891125b00a3ec2b698bc496735ab997669f5 (patch)
treeea6f52bc69dec26f7c88d6766234a7c507607a06 /ports/coinutils
parent26a9338c5055193915290527eacb37f2ac7fdcb8 (diff)
downloadvcpkg-5898891125b00a3ec2b698bc496735ab997669f5.tar.gz
vcpkg-5898891125b00a3ec2b698bc496735ab997669f5.zip
[openexr,openimageio,suitesparse,theia] updates for non-win32 (#6371)
* [openexr,openimageio,suitesparse,theia] updates for non-win32 * [theia] use only valid cmake symbols * [suitesparse] Fix build * [lapack] still not properly integrating with other ports * [lapack] intercept cmake module calls and substitute them with our defs * [suitesparse,clapack] fixes for proper integration * [ceres,clapack] bump CONTROL * [suitesparse] remove unnecessary defs * [clapack] improve wrapper logic * [WIN32] remove wrong symbol * [clapack] fix wrapper integration * [Accelerate] use best framework when available * [clapack] separate config from wrapper * [clapack] fix paths and filenames * [mlpack,armadillo,clapack] improve library handling * [mlpack] remove unnecessary cmake option * [clp,coinutils,osi,liblemon] dependencies of openmvg, improve compatibility with non-win32 * [openmvg] fix for case-sensitive filesystems * [clp,coinutils,osi] simplify CMakeLists removing many unnecessary steps * [sophus] Force rebuild * [theia] fixes for linux, part1 * [io2d] remove broken sintax * [fontconfig] bump version to remove CI cached failure * [theia] fixes for linux, part2 * [theia] remove unnecessary empty folders and comments from portfile * [theia] use correct build type removing forced vars in cmakelists.txt * [openmvg] add missing suitesparse target detection * [sophus] fix Suitesparse dependency * [sophus,openmvg] use suitesparse lowercase for module compatibility on case-sensitive filesystems * [suitesparse] fixes for case-sensitive filesystems * [openmvg] use correct Eigen3 name for case-sensitive filesystems * [sophus] trigger rebuild * [shogun] use modern vcpkg style * [shogun] add missing cmake system processor symbol
Diffstat (limited to 'ports/coinutils')
-rw-r--r--ports/coinutils/CMakeLists.txt108
-rw-r--r--ports/coinutils/CONTROL2
-rw-r--r--ports/coinutils/Config.cmake.in2
-rw-r--r--ports/coinutils/portfile.cmake8
4 files changed, 54 insertions, 66 deletions
diff --git a/ports/coinutils/CMakeLists.txt b/ports/coinutils/CMakeLists.txt
index 1a090c94d..bdaf5969b 100644
--- a/ports/coinutils/CMakeLists.txt
+++ b/ports/coinutils/CMakeLists.txt
@@ -8,17 +8,28 @@ 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")
+
+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/Coin" CACHE PATH "Path where headers will be installed")
+set(INSTALL_CMAKE_DIR "share/${PROJECT_NAME}" 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()
if(MSVC)
set(
CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275"
)
-endif(MSVC)
+endif()
+
if(APPLE)
set(
CMAKE_CXX_FLAGS
@@ -26,84 +37,59 @@ if(APPLE)
)
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)
+endif()
-# 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)
+include(CheckIncludeFileCXX)
+include(CheckIncludeFile)
+check_include_file_cxx("cmath" HAVE_CMATH)
+check_include_file_cxx("cfloat" HAVE_CFLOAT)
+if(NOT HAVE_CMATH OR NOT HAVE_CFLOAT)
+ message(FATAL_ERROR "Missing necessary include files, like cmath or cfloat")
+endif()
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>)
+target_include_directories(${PROJECT_NAME} PUBLIC $<INSTALL_INTERFACE:${RELATIVE_INSTALL_INCLUDE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/CoinUtils/src>)
-install(TARGETS ${PROJECT_NAME}
- EXPORT "${TARGETS_EXPORT_NAME}"
- LIBRARY DESTINATION lib
- ARCHIVE DESTINATION lib
- RUNTIME DESTINATION bin
- INCLUDES
- DESTINATION include)
+if(MSVC)
+ target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS)
+endif()
+target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_CMATH HAVE_CFLOAT)
install(DIRECTORY CoinUtils/src/
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/coin
+ DESTINATION ${INSTALL_INCLUDE_DIR}
FILES_MATCHING
PATTERN "*.h"
PATTERN "*.hpp")
-#
-# Install Libraries
-#
-# Configure '<PROJECT-NAME>ConfigVersion.cmake' Use: * PROJECT_VERSION
+install(TARGETS ${PROJECT_NAME}
+ EXPORT "${PROJECT_NAME}Targets"
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin)
+
+include(CMakePackageConfigHelpers)
+
+set(version_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}ConfigVersion.cmake")
+set(project_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}Config.cmake")
+set(namespace "Coin::")
+
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}")
+ "${INSTALL_CMAKE_DIR}")
-# Config * <prefix>/lib/cmake/Foo/FooConfig.cmake *
-# <prefix>/lib/cmake/Foo/FooConfigVersion.cmake
install(FILES "${project_config}" "${version_config}"
- DESTINATION "${config_install_dir}")
+ DESTINATION "${INSTALL_CMAKE_DIR}")
-# Config * <prefix>/lib/cmake/Foo/FooTargets.cmake
-install(EXPORT "${TARGETS_EXPORT_NAME}"
+install(EXPORT "${PROJECT_NAME}Targets"
NAMESPACE "${namespace}"
- DESTINATION "${config_install_dir}")
+ DESTINATION "${INSTALL_CMAKE_DIR}")
diff --git a/ports/coinutils/CONTROL b/ports/coinutils/CONTROL
index 9ea94ddf5..fd495d62d 100644
--- a/ports/coinutils/CONTROL
+++ b/ports/coinutils/CONTROL
@@ -1,3 +1,3 @@
Source: coinutils
-Version: 2.11.2
+Version: 2.11.2-1
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
index a53c57495..2c12f83f0 100644
--- a/ports/coinutils/Config.cmake.in
+++ b/ports/coinutils/Config.cmake.in
@@ -1,5 +1,5 @@
@PACKAGE_INIT@
-include("${CMAKE_CURRENT_LIST_DIR}/@TARGETS_EXPORT_NAME@.cmake")
+include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
check_required_components("@PROJECT_NAME@")
diff --git a/ports/coinutils/portfile.cmake b/ports/coinutils/portfile.cmake
index 109ff7994..42bd8d2d1 100644
--- a/ports/coinutils/portfile.cmake
+++ b/ports/coinutils/portfile.cmake
@@ -19,10 +19,12 @@ vcpkg_configure_cmake(
vcpkg_install_cmake()
vcpkg_copy_pdbs()
-
-vcpkg_fixup_cmake_targets(CONFIG_PATH "lib/cmake/CoinUtils")
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") #on case-sensitive filesystems, it's necessary to rename and make it lowercase
+ vcpkg_fixup_cmake_targets(CONFIG_PATH share/CoinUtils)
+else()
+ vcpkg_fixup_cmake_targets()
+endif()
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
-# Handle copyright
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/coinutils RENAME copyright)