chiark / gitweb /
Fixes memory leak in auglag/auglag.c
[nlopt.git] / CMakeLists.txt
index 5e667b539624cd47e6a2a9f8be4fd7282c0e48bf..1c7a67c0ee39f3f9134ceae7a1fa00ccb9859ca8 100644 (file)
@@ -118,6 +118,10 @@ INCLUDE_DIRECTORIES (
 # nlopt LIBRARY TARGET (SHARED OR STATIC)\r
 #==============================================================================\r
 \r
+SET ( NLOPT_HEADERS \r
+  api/nlopt.h api/nlopt.hpp api/nlopt.f\r
+)\r
+\r
 SET ( NLOPT_SOURCES   \r
        direct/DIRect.c direct/direct_wrap.c direct/DIRserial.c direct/DIRsubrout.c direct/direct-internal.h direct/direct.h\r
        cdirect/cdirect.c cdirect/hybrid.c cdirect/cdirect.h\r
@@ -139,15 +143,38 @@ SET ( NLOPT_SOURCES
        stogo/global.cc stogo/linalg.cc stogo/local.cc stogo/stogo.cc stogo/tools.cc stogo/global.h stogo/linalg.h stogo/local.h stogo/stogo_config.h stogo/stogo.h stogo/tools.h \r
         )\r
 \r
-OPTION(NLOPT_BUILD_SHARED "Build NLOPT as a shared library" OFF )\r
+OPTION(BUILD_SHARED_LIBS "Build NLOPT as a shared library" OFF )\r
 \r
-IF(NLOPT_BUILD_SHARED)\r
+if (BUILD_SHARED_LIBS)\r
   ADD_DEFINITIONS(-DNLOPT_DLL)\r
   ADD_DEFINITIONS(-DNLOPT_DLL_EXPORT )\r
-  ADD_LIBRARY (nlopt SHARED ${NLOPT_SOURCES} )\r
-ELSE(NLOPT_BUILD_SHARED)\r
-  ADD_LIBRARY (nlopt STATIC ${NLOPT_SOURCES} )\r
-ENDIF(NLOPT_BUILD_SHARED)\r
-\r
-\r
+  \r
+  if (NOT CMAKE_INSTALL_PREFIX MATCHES "^/usr")\r
+    set (CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX})\r
+    set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)\r
+  endif ()\r
+endif ()\r
+\r
+INSTALL ( FILES ${NLOPT_HEADERS} DESTINATION include )\r
+\r
+ADD_LIBRARY (nlopt ${NLOPT_SOURCES} )\r
+\r
+# parse configure.ac for lib version\r
+STRING( REGEX MATCH "SHARED_VERSION_INFO=\"[0-9]+:[0-9]+:[0-9]+\"" _VERSION_INFO_LINE "${CONFIG_AUTOMAKE}") \r
+IF (_VERSION_INFO_LINE)\r
+  STRING( REGEX REPLACE "SHARED_VERSION_INFO=\"([0-9]+):[0-9]+:[0-9]+\"" "\\1" _VERSION_INFO_CURRENT "${_VERSION_INFO_LINE}") \r
+  STRING( REGEX REPLACE "SHARED_VERSION_INFO=\"[0-9]+:([0-9]+):[0-9]+\"" "\\1" _VERSION_INFO_REVISION "${_VERSION_INFO_LINE}") \r
+  STRING( REGEX REPLACE "SHARED_VERSION_INFO=\"[0-9]+:[0-9]+:([0-9]+)\"" "\\1" _VERSION_INFO_AGE "${_VERSION_INFO_LINE}") \r
+  MATH(EXPR _INFO_SOVERSION "${_VERSION_INFO_CURRENT} - ${_VERSION_INFO_AGE} ")\r
+  SET(_INFO_VERSION "${_INFO_SOVERSION}.${_VERSION_INFO_AGE}.${_VERSION_INFO_REVISION}")\r
+  SET_TARGET_PROPERTIES(nlopt PROPERTIES SOVERSION ${_INFO_SOVERSION})\r
+  SET_TARGET_PROPERTIES(nlopt PROPERTIES VERSION ${_INFO_VERSION} )\r
+ENDIF ()\r
+\r
+INSTALL ( TARGETS nlopt\r
+          RUNTIME DESTINATION bin\r
+          LIBRARY DESTINATION lib${LIB_SUFFIX}\r
+          ARCHIVE DESTINATION lib${LIB_SUFFIX}\r
+        )\r
 \r
+add_subdirectory (swig)\r