]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/clp/CMakeLists.txt
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / clp / CMakeLists.txt
1 cmake_minimum_required(VERSION 3.11)
2
3 project(Clp LANGUAGES C CXX)
4
5 set(PROJECT_VERSION 1.16.11)
6 set(PROJECT_VERSION_MAJOR 1)
7 set(PROJECT_VERSION_MINOR 16)
8 set(PROJECT_VERSION_PATCH 11)
9
10 set(CMAKE_CXX_STANDARD 14)
11
12 set(INSTALL_BIN_DIR "bin" CACHE PATH "Path where exe and dll will be installed")
13 set(INSTALL_LIB_DIR "lib" CACHE PATH "Path where lib will be installed")
14 set(INSTALL_INCLUDE_DIR "include/Coin" CACHE PATH "Path where headers will be installed")
15 set(INSTALL_CMAKE_DIR "share/clp" CACHE PATH "Path where cmake configs will be installed")
16
17 # Make relative paths absolute (needed later on)
18 set(RELATIVE_INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR})
19 foreach(p LIB BIN INCLUDE CMAKE)
20 set(var INSTALL_${p}_DIR)
21 if(NOT IS_ABSOLUTE "${${var}}")
22 set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
23 endif()
24 endforeach()
25
26 if(MSVC)
27 set(
28 CMAKE_CXX_FLAGS
29 "${CMAKE_CXX_FLAGS} /bigobj /MP /wd4996 /wd4819 /wd4251 /wd4267 /wd4244 /wd4275"
30 )
31 endif()
32
33 if(APPLE)
34 set(
35 CMAKE_CXX_FLAGS
36 "${CMAKE_CXX_FLAGS} -Wno-inconsistent-missing-override -Wno-unused-command-line-argument -Wno-unused-result -Wno-exceptions"
37 )
38 set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9"
39 CACHE STRING "Minimum OS X deployment version")
40 endif()
41
42 find_package(CoinUtils REQUIRED)
43 find_package(Osi REQUIRED)
44
45 file(GLOB CLP_SOURCES
46 Clp/src/*.hpp
47 Clp/src/*.cpp
48 Clp/src/OsiClp/*.hpp
49 Clp/src/OsiClp/*.cpp)
50 file(GLOB CLP_REMOVE
51 Clp/src/ClpCholeskyMumps.cpp
52 Clp/src/ClpCholeskyUfl.cpp
53 Clp/src/ClpCholeskyWssmp.cpp
54 Clp/src/ClpCholeskyWssmpKKT.cpp
55 Clp/src/ClpMain.cpp
56 Clp/src/*Abc*.cpp
57 Clp/src/ClpCholeskyMumps.hpp
58 Clp/src/ClpCholeskyUfl.hpp
59 Clp/src/ClpCholeskyWssmp.hpp
60 Clp/src/ClpCholeskyWssmpKKT.hpp
61 Clp/src/ClpMain.hpp
62 Clp/src/*Abc*.hpp
63 Clp/src/*Abc*.h)
64 list(REMOVE_ITEM CLP_SOURCES ${CLP_REMOVE})
65
66 add_library(${PROJECT_NAME} ${CLP_SOURCES})
67
68 target_include_directories(${PROJECT_NAME}
69 PUBLIC
70 $<INSTALL_INTERFACE:${RELATIVE_INSTALL_INCLUDE_DIR}>
71 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Clp/src/>
72 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/Clp/src/OsiClp>)
73
74 if(MSVC)
75 target_compile_definitions(${PROJECT_NAME} PRIVATE _CRT_SECURE_NO_WARNINGS)
76 endif()
77 target_compile_definitions(${PROJECT_NAME} PRIVATE HAVE_CMATH)
78 target_compile_definitions(${PROJECT_NAME} PUBLIC COIN_HAS_CLP)
79
80 target_link_libraries(${PROJECT_NAME} PRIVATE Coin::CoinUtils Coin::Osi)
81
82 install(DIRECTORY Clp/src/
83 DESTINATION ${INSTALL_INCLUDE_DIR}
84 FILES_MATCHING
85 PATTERN "*.h"
86 PATTERN "*.hpp"
87 PATTERN "config_default.h" EXCLUDE)
88
89 install(DIRECTORY Clp/src/OsiClp/
90 DESTINATION ${INSTALL_INCLUDE_DIR}
91 FILES_MATCHING
92 PATTERN "*.h"
93 PATTERN "*.hpp"
94 PATTERN "config_default.h" EXCLUDE)
95
96 install(TARGETS ${PROJECT_NAME}
97 EXPORT "${PROJECT_NAME}Targets"
98 LIBRARY DESTINATION lib
99 ARCHIVE DESTINATION lib
100 RUNTIME DESTINATION bin)
101
102 include(CMakePackageConfigHelpers)
103
104 set(version_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}ConfigVersion.cmake")
105 set(project_config "${CMAKE_CURRENT_BINARY_DIR}/temp/${PROJECT_NAME}Config.cmake")
106 set(namespace "Coin::")
107
108 write_basic_package_version_file("${version_config}"
109 COMPATIBILITY SameMajorVersion)
110
111 configure_package_config_file("Config.cmake.in"
112 "${project_config}"
113 INSTALL_DESTINATION
114 "${INSTALL_CMAKE_DIR}")
115
116 install(FILES "${project_config}" "${version_config}"
117 DESTINATION "${INSTALL_CMAKE_DIR}")
118
119 install(EXPORT "${PROJECT_NAME}Targets"
120 NAMESPACE "${namespace}"
121 DESTINATION "${INSTALL_CMAKE_DIR}")