Skip to content

Commit 1b6b44a

Browse files
committed
soplex patch fixup
1 parent 00773e2 commit 1b6b44a

File tree

1 file changed

+86
-19
lines changed

1 file changed

+86
-19
lines changed

patches/soplex-v7.1.3.patch

+86-19
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
diff --git a/CMakeLists.txt b/CMakeLists.txt
2-
index 0b21f5a..0b26a36 100644
2+
index 0b21f5a..bde4883 100644
33
--- a/CMakeLists.txt
44
+++ b/CMakeLists.txt
55
@@ -27,6 +27,10 @@ set(CPACK_PACKAGE_VERSION_PATCH "${SOPLEX_VERSION_PATCH}")
@@ -13,7 +13,18 @@ index 0b21f5a..0b26a36 100644
1313
option(ZLIB "Use ZLIB" ON)
1414
option(GMP "Use GMP" ON)
1515
option(EMSCRIPTEN_HTML "Emscripten HTML output" OFF)
16-
@@ -69,6 +73,8 @@ set(CMAKE_MACOSX_RPATH ON)
16+
@@ -43,6 +47,10 @@ option(SANITIZE_THREAD "should the thread sanitizer be enabled in debug mode if
17+
option(COVERAGE "enable coverage support" OFF)
18+
option(PAPILO "should papilo library be linked" ON)
19+
20+
+option(SOPLEX_EXAMPLE "Build example" OFF)
21+
+option(SOPLEX_SOPLEX "Build soplex program" OFF)
22+
+option(SOPLEX_EXPORT "Enable to use soplex from the current project's build tree, without installation." OFF)
23+
+
24+
SET(COVERAGE_CTEST_ARGS "" CACHE STRING "additional ctest arguments for coverage")
25+
26+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
27+
@@ -69,6 +77,8 @@ set(CMAKE_MACOSX_RPATH ON)
1728

1829
# use C++14 standard
1930
set(CMAKE_CXX_STANDARD 14)
@@ -22,7 +33,7 @@ index 0b21f5a..0b26a36 100644
2233

2334
# set function visibility default to hidden
2435
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
25-
@@ -123,12 +129,11 @@ if(COVERAGE)
36+
@@ -123,12 +133,11 @@ if(COVERAGE)
2637
endif()
2738

2839
if(ZLIB)
@@ -40,7 +51,7 @@ index 0b21f5a..0b26a36 100644
4051
endif()
4152

4253
if(GMP)
43-
@@ -170,39 +175,24 @@ else()
54+
@@ -170,39 +179,24 @@ else()
4455
set(SOPLEX_WITH_PAPILO off)
4556
endif()
4657

@@ -97,7 +108,7 @@ index 0b21f5a..0b26a36 100644
97108
endif()
98109

99110
# disable fused floating point contraction to enhance reproducibility across compilers and architectures
100-
@@ -247,7 +237,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/soplex/config.h.in ${PROJECT_BINA
111+
@@ -247,7 +241,7 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/soplex/config.h.in ${PROJECT_BINA
101112
configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/soplex-config.cmake" @ONLY)
102113

103114
add_subdirectory(src)
@@ -110,39 +121,95 @@ index 0b21f5a..0b26a36 100644
110121
+ add_subdirectory(check)
111122
+endif()
112123
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
113-
index 84ec5a5..e1d0028 100644
124+
index 84ec5a5..6f5d4ef 100644
114125
--- a/src/CMakeLists.txt
115126
+++ b/src/CMakeLists.txt
116-
@@ -193,8 +193,8 @@ target_link_libraries(libsoplexshared libsoplex ${libs})
127+
@@ -193,24 +193,28 @@ target_link_libraries(libsoplexshared libsoplex ${libs})
117128
set_target_properties(libsoplexshared PROPERTIES CXX_VISIBILITY_PRESET default)
118129

119130
# create soplex binary using library without pic
120131
-add_executable(soplex soplexmain.cpp)
121132
-target_link_libraries(soplex LINK_PUBLIC libsoplex ${Boost_LIBRARIES})
122-
+add_executable(soplex EXCLUDE_FROM_ALL soplexmain.cpp)
123-
+target_link_libraries(soplex PRIVATE libsoplex ${Boost_LIBRARIES})
133+
+if(SOPLEX_SOPLEX)
134+
+ add_executable(soplex EXCLUDE_FROM_ALL soplexmain.cpp)
135+
+ target_link_libraries(soplex PRIVATE libsoplex ${Boost_LIBRARIES})
124136

125-
if(EMSCRIPTEN AND EMSCRIPTEN_HTML)
137+
-if(EMSCRIPTEN AND EMSCRIPTEN_HTML)
138+
+ # set the install rpath to the installed destination
139+
+ set_target_properties(soplex PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
140+
+
141+
+ if(EMSCRIPTEN AND EMSCRIPTEN_HTML)
126142
set_target_properties(soplex PROPERTIES LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/soplex_webdemo_shell.html)
127-
@@ -206,8 +206,8 @@ if(CMAKE_BUILD_TYPE EQUAL "Debug")
128-
add_sanitizers(soplex)
143+
set(CMAKE_EXECUTABLE_SUFFIX ".html")
144+
-endif()
145+
+ endif()
146+
147+
-if(CMAKE_BUILD_TYPE EQUAL "Debug")
148+
- find_package(Sanitizers)
149+
- add_sanitizers(soplex)
150+
+ if(CMAKE_BUILD_TYPE EQUAL "Debug")
151+
+ find_package(Sanitizers)
152+
+ add_sanitizers(soplex)
153+
+ endif()
129154
endif()
130155

131156
-add_executable(example EXCLUDE_FROM_ALL example.cpp)
132157
-target_link_libraries(example libsoplex)
133-
+add_executable(soplex_example EXCLUDE_FROM_ALL example.cpp)
134-
+target_link_libraries(soplex_example libsoplex)
158+
-
159+
-# set the install rpath to the installed destination
160+
-set_target_properties(soplex PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
161+
+if(SOPLEX_EXAMPLE)
162+
+ add_executable(example example.cpp)
163+
+ target_link_libraries(example libsoplex)
164+
+endif()
165+
166+
# install the header files of soplex
167+
install(FILES ${headers} ${PROJECT_BINARY_DIR}/soplex/config.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/soplex)
168+
@@ -237,15 +241,28 @@ install(FILES
169+
DESTINATION include/soplex/external/zstr)
135170

136-
# set the install rpath to the installed destination
137-
set_target_properties(soplex PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
138-
@@ -244,8 +244,8 @@ install(TARGETS soplex libsoplex libsoplex-pic libsoplexshared EXPORT soplex-tar
171+
# install the binary and the library to appropriate lcoations and add them to an export group
172+
-install(TARGETS soplex libsoplex libsoplex-pic libsoplexshared EXPORT soplex-targets
173+
+if(SOPLEX_SOPLEX)
174+
+ install(TARGETS soplex
175+
+ EXPORT soplex-targets
176+
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
177+
+endif()
178+
+
179+
+install(TARGETS libsoplex libsoplex-pic libsoplexshared
180+
+ EXPORT soplex-targets
181+
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
182+
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
183+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
139184
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
140185

186+
+install(EXPORT soplex-targets
187+
+ FILE soplex-targets.cmake
188+
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/soplex)
189+
+
141190
# Add library targets to the build-tree export set
142191
-export(TARGETS libsoplex libsoplex-pic libsoplexshared
143192
- FILE "${CMAKE_BINARY_DIR}/soplex-targets.cmake")
144-
+#export(TARGETS libsoplex libsoplex-pic libsoplexshared
145-
+# FILE "${CMAKE_BINARY_DIR}/soplex-targets.cmake")
193+
+if(SOPLEX_EXPORT)
194+
+ export(TARGETS libsoplex libsoplex-pic libsoplexshared
195+
+ FILE "${CMAKE_BINARY_DIR}/soplex-targets.cmake")
196+
+endif()
146197

147198
#configure the config file for the build tree
148199
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}")
200+
@@ -259,7 +276,6 @@ ${CMAKE_BINARY_DIR}/soplex-config-version.cmake
201+
COMPATIBILITY SameMajorVersion
202+
)
203+
204+
-
205+
#configure the config file for the install
206+
set(CONF_INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../../../include")
207+
configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in
208+
@@ -267,7 +283,6 @@ configure_file(${PROJECT_SOURCE_DIR}/soplex-config.cmake.in
209+
210+
# install the targets of the soplex export group and the config file so that other projects
211+
# can link easily against soplex
212+
-install(EXPORT soplex-targets FILE soplex-targets.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/soplex)
213+
install(FILES "${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/soplex-config.cmake"
214+
${CMAKE_BINARY_DIR}/soplex-config-version.cmake
215+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/soplex)

0 commit comments

Comments
 (0)