diff options
| author | Stefano Sinigardi <stesinigardi@hotmail.com> | 2019-06-01 00:48:17 +0200 |
|---|---|---|
| committer | Victor Romero <romerosanchezv@gmail.com> | 2019-05-31 15:48:17 -0700 |
| commit | 5898891125b00a3ec2b698bc496735ab997669f5 (patch) | |
| tree | ea6f52bc69dec26f7c88d6766234a7c507607a06 /ports/coinutils | |
| parent | 26a9338c5055193915290527eacb37f2ac7fdcb8 (diff) | |
| download | vcpkg-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.txt | 108 | ||||
| -rw-r--r-- | ports/coinutils/CONTROL | 2 | ||||
| -rw-r--r-- | ports/coinutils/Config.cmake.in | 2 | ||||
| -rw-r--r-- | ports/coinutils/portfile.cmake | 8 |
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) |
