From d758f07b2a46c9cf7e8e63b837b28899bcc0e72c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Chr=C3=A9tien?= Date: Sat, 27 Aug 2016 23:16:16 +0200 Subject: [PATCH] Fix for undefined symbols on OS X --- .travis | 2 +- .travis.yml | 5 +++-- src/CMakeLists.txt | 12 ++++++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.travis b/.travis index 811fbd6..a0c7e47 160000 --- a/.travis +++ b/.travis @@ -1 +1 @@ -Subproject commit 811fbd60262f89af6e4edb06f497cd86db6d9666 +Subproject commit a0c7e47d492fb4c54cdaba905741149bd4fc4656 diff --git a/.travis.yml b/.travis.yml index 2708f80..51d3ec1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,8 +27,9 @@ branches: - travis - coverity_scan script: -- export LD_LIBRARY_PATH=`pkg-config --variable=plugindir roboptim-core`:$LD_LIBRARY_PATH; -- if [ "${COVERITY_SCAN_BRANCH}" != "1" ]; then ./.travis/run build; fi + - if [ "${TRAVIS_OS_NAME}" == "linux" ]; then export LD_LIBRARY_PATH=`pkg-config --variable=plugindir roboptim-core`:$LD_LIBRARY_PATH; fi + - if [ "${TRAVIS_OS_NAME}" == "osx" ]; then export DYLD_LIBRARY_PATH=`pkg-config --variable=plugindir roboptim-core`:$DYLD_LIBRARY_PATH; fi + - if [ "${COVERITY_SCAN_BRANCH}" != "1" ]; then ./.travis/run build; fi after_success: - ./.travis/run after_success - codecov --gcov-root=/tmp/_ci/build diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0368616..decd64f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,6 +21,11 @@ MACRO(IPOPT_PLUGIN NAME) ADD_LIBRARY(roboptim-core-plugin-${NAME} MODULE ${NAME}.cc tnlp.cc tnlp.hh tnlp.hxx doc.hh ${HEADERS} ) + + IF(APPLE) + SET(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -undefined dynamic_lookup") + ENDIF() + SET_TARGET_PROPERTIES(roboptim-core-plugin-${NAME} PROPERTIES COMPILE_DEFINITIONS IPOPT_DEFAULT_LINEAR_SOLVER="${IPOPT_DEFAULT_LINEAR_SOLVER}" @@ -36,12 +41,11 @@ MACRO(IPOPT_PLUGIN NAME) PKG_CONFIG_USE_COMPILE_DEPENDENCY(roboptim-core-plugin-${NAME} roboptim-core) # Make sure all symbols are defined. - # See: - # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=592752 + # See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=592752 IF(CMAKE_SYSTEM_NAME MATCHES "Linux" AND EXISTS "/etc/debian_version" AND IPOPT_PREFIX MATCHES "/usr") - TARGET_LINK_LIBRARIES(roboptim-core-plugin-${NAME} dmumps_seq) + TARGET_LINK_LIBRARIES(roboptim-core-plugin-${NAME} dmumps_seq) ENDIF() ENDMACRO() @@ -49,5 +53,5 @@ ENDMACRO() IPOPT_PLUGIN(ipopt) # Ipopt plug-in (with only gradient computation and sparse matrices). IPOPT_PLUGIN(ipopt-sparse) -# Ipopt twice differentiable (td) plug-in (require hessian computation). +# Ipopt twice-differentiable (td) plug-in (requires hessian computation). IPOPT_PLUGIN(ipopt-td)