@@ -8,9 +8,9 @@ MACRO( OPENMS_CONTRIB_BUILD_COINOR)
88 OPENMS_LOGHEADER_LIBRARY("COINOR" )
99 ## extract: (takes very long.. so skip if possible)
1010 if (MSVC )
11- set (ZIP_ARGS " x -y -osrc" )
11+ set (ZIP_ARGS x -y -osrc)
1212 else ()
13- set (ZIP_ARGS " xzf" )
13+ set (ZIP_ARGS xzf)
1414 endif ()
1515 OPENMS_SMARTEXTRACT(ZIP_ARGS ARCHIVE_COINOR "COINOR" "AUTHORS" )
1616
@@ -131,9 +131,15 @@ MACRO( OPENMS_CONTRIB_BUILD_COINOR)
131131
132132 # configure --
133133 if ( ${CMAKE_SYSTEM_NAME} MATCHES "Darwin" )
134- set (COINOR_EXTRA_FLAGS "ADD_FFLAGS='${OSX_DEPLOYMENT_FLAG} ' ADD_CFLAGS='${OSX_DEPLOYMENT_FLAG} ${OSX_SYSROOT_FLAG} ' ADD_CXXFLAGS='${OSX_LIB_FLAG} ${OSX_DEPLOYMENT_FLAG} ${OSX_SYSROOT_FLAG} -fPIC' --disable-dependency-tracking" )
134+ set (COINOR_CXXFLAGS "${OSX_LIB_FLAG} ${OSX_DEPLOYMENT_FLAG} ${OSX_SYSROOT_FLAG} -fPIC -std=c++14" )
135+ set (COINOR_CFLAGS "${OSX_DEPLOYMENT_FLAG} ${OSX_SYSROOT_FLAG} " )
136+ set (COINOR_FFLAGS "${OSX_DEPLOYMENT_FLAG} " )
137+ set (COINOR_EXTRA_ARGS "--disable-dependency-tracking" )
135138 else ()
136- set (COINOR_EXTRA_FLAGS "ADD_CXXFLAGS='-fPIC'" )
139+ set (COINOR_CXXFLAGS "-fPIC -std=c++14" )
140+ set (COINOR_CFLAGS "" )
141+ set (COINOR_FFLAGS "" )
142+ set (COINOR_EXTRA_ARGS "" )
137143 endif ()
138144
139145 # Determine build triplet for configure (only needed for Linux with old config.guess)
@@ -159,51 +165,83 @@ MACRO( OPENMS_CONTRIB_BUILD_COINOR)
159165 set (SHARED_BUILD "--enable-shared=no" )
160166 endif ()
161167
162- message ( STATUS "Configure COIN-OR library (./configure -C --prefix=${PROJECT_BINARY_DIR} ${BUILD_TRIPLET} ${STATIC_BUILD} ${SHARED_BUILD} --with-lapack=no --with-blas=no ${COINOR_EXTRA_FLAGS} CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER} )" )
163- exec_program ("./configure" "${COINOR_DIR} "
164- ARGS
165- -C
166- --prefix =${PROJECT_BINARY_DIR}
167- ${BUILD_TRIPLET}
168- ## Following two lines can be combined with prefix
169- ## But maybe they avoid building the doc into share (wanted?)
170- #--libdir=${CONTRIB_BIN_LIB_DIR}
171- #--includedir=${CONTRIB_BIN_INCLUDE_DIR}
172- ${STATIC_BUILD}
173- ${SHARED_BUILD}
174- --with-lapack=no
175- --with-blas=no
176- ${COINOR_EXTRA_FLAGS}
177- CXX=${CMAKE_CXX_COMPILER}
178- CC=${CMAKE_C_COMPILER}
168+ message ( STATUS "Configure COIN-OR library (./configure -C --prefix=${PROJECT_BINARY_DIR} ${BUILD_TRIPLET} ${STATIC_BUILD} ${SHARED_BUILD} --with-lapack=no --with-blas=no ${COINOR_EXTRA_ARGS} CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER} CXXFLAGS=${COINOR_CXXFLAGS} )" )
169+
170+ # Save original environment variables
171+ set (_ORIG_CXXFLAGS "$ENV{CXXFLAGS} " )
172+ set (_ORIG_CFLAGS "$ENV{CFLAGS} " )
173+ set (_ORIG_FFLAGS "$ENV{FFLAGS} " )
174+
175+ # Set environment variables for configure
176+ set (ENV{CXXFLAGS} "${COINOR_CXXFLAGS} " )
177+ set (ENV{CFLAGS} "${COINOR_CFLAGS} " )
178+ set (ENV{FFLAGS} "${COINOR_FFLAGS} " )
179+
180+ execute_process (
181+ COMMAND
182+ ./configure
183+ -C
184+ --prefix =${PROJECT_BINARY_DIR}
185+ ${STATIC_BUILD}
186+ ${SHARED_BUILD}
187+ ${BUILD_TRIPLET}
188+ --with-lapack=no
189+ --with-blas=no
190+ ${COINOR_EXTRA_ARGS}
191+ CXX=${CMAKE_CXX_COMPILER}
192+ CC=${CMAKE_C_COMPILER}
193+ WORKING_DIRECTORY ${COINOR_DIR}
179194 OUTPUT_VARIABLE COINOR_CONFIGURE_OUT
180- RETURN_VALUE COINOR_CONFIGURE_SUCCESS
181- )
182-
195+ ERROR_VARIABLE COINOR_CONFIGURE_ERR
196+ RESULT_VARIABLE COINOR_CONFIGURE_SUCCESS
197+ )
183198 ## logfile
184199 file (APPEND ${LOGFILE} ${COINOR_CONFIGURE_OUT} )
200+ file (APPEND ${LOGFILE} ${COINOR_CONFIGURE_ERR} )
185201
186202 if ( NOT COINOR_CONFIGURE_SUCCESS EQUAL 0)
187- message ( STATUS "Configure COIN-OR library (./configure -C --prefix=${PROJECT_BINARY_DIR} ${BUILD_TRIPLET} ${STATIC_BUILD} ${SHARED_BUILD} --with-lapack=no --with-blas=no ${COINOR_EXTRA_FLAGS} CXX=${CMAKE_CXX_COMPILER} CC=${CMAKE_C_COMPILER} ) .. failed" )
203+ message ( STATUS "Configure COIN-OR library .. failed" )
204+ message ( STATUS ${COINOR_CONFIGURE_ERR} )
188205 message ( FATAL_ERROR ${COINOR_CONFIGURE_OUT} )
189206 else ()
190- message ( STATUS "Configure COIN-OR library (./configure -C --prefix= ${PROJECT_BINARY_DIR} ${BUILD_TRIPLET} ${STATIC_BUILD} ${SHARED_BUILD} --with-lapack=no --with-blas=no ${COINOR_EXTRA_FLAGS} CXX= ${CMAKE_CXX_COMPILER} CC= ${CMAKE_C_COMPILER} ) .. done" )
207+ message ( STATUS "Configure COIN-OR library .. done" )
191208 endif ()
192209
193210 ## make install
194211 message ( STATUS "Building and installing COIN-OR library (make install).. " )
195- exec_program (${CMAKE_MAKE_PROGRAM} "${COINOR_DIR} "
196- ARGS
197- install
212+ execute_process (
213+ COMMAND
214+ ${CMAKE_MAKE_PROGRAM}
215+ install
216+ WORKING_DIRECTORY ${COINOR_DIR}
198217 OUTPUT_VARIABLE COINOR_MAKE_OUT
199- RETURN_VALUE COINOR_MAKE_SUCCESS
200- )
201-
218+ ERROR_VARIABLE COINOR_MAKE_ERR
219+ RESULT_VARIABLE COINOR_MAKE_SUCCESS
220+ )
202221 ## logfile
203222 file (APPEND ${LOGFILE} ${COINOR_MAKE_OUT} )
223+ file (APPEND ${LOGFILE} ${COINOR_MAKE_ERR} )
224+
225+ # Restore original environment variables (or unset if they were empty)
226+ if (_ORIG_CXXFLAGS STREQUAL "" )
227+ unset (ENV{CXXFLAGS})
228+ else ()
229+ set (ENV{CXXFLAGS} "${_ORIG_CXXFLAGS} " )
230+ endif ()
231+ if (_ORIG_CFLAGS STREQUAL "" )
232+ unset (ENV{CFLAGS})
233+ else ()
234+ set (ENV{CFLAGS} "${_ORIG_CFLAGS} " )
235+ endif ()
236+ if (_ORIG_FFLAGS STREQUAL "" )
237+ unset (ENV{FFLAGS})
238+ else ()
239+ set (ENV{FFLAGS} "${_ORIG_FFLAGS} " )
240+ endif ()
204241
205242 if ( NOT COINOR_MAKE_SUCCESS EQUAL 0)
206243 message ( STATUS "Building and installing COIN-OR library (make install) .. failed" )
244+ message ( STATUS ${COINOR_MAKE_ERR} )
207245 message ( FATAL_ERROR ${COINOR_MAKE_OUT} )
208246 else ()
209247 message ( STATUS "Building and installing COIN-OR library (make install) .. done" )
0 commit comments