[segyio] 173/376: Build+link respecting BUILD_SHARED_LIBS

Jørgen Kvalsvik jokva-guest at moszumanska.debian.org
Wed Sep 20 08:04:28 UTC 2017


This is an automated email from the git hooks/post-receive script.

jokva-guest pushed a commit to branch debian
in repository segyio.

commit bd1405122280f337d0774aff739e5dedf1b63ebe
Author: Jørgen Kvalsvik <jokva at statoil.com>
Date:   Mon Feb 13 13:53:48 2017 +0100

    Build+link respecting BUILD_SHARED_LIBS
    
    Both targets will always be built, but the target segyio will alias the
    shared or static library depending on BUILD_SHARED_LIBS being on or off.
---
 .travis.yml                 | 2 +-
 CMakeLists.txt              | 1 +
 applications/CMakeLists.txt | 4 ++--
 appveyor.yml                | 2 +-
 cmake/matlab.cmake          | 4 ++--
 lib/CMakeLists.txt          | 7 +++++++
 python/CMakeLists.txt       | 4 ++--
 7 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index e00fb36..c70dd75 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -57,6 +57,6 @@ before_script:
   - cmake --version
   - mkdir build
   - pushd build
-  - cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE $enabled  ..
+  - cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SHARED_LIBS=ON $enabled  ..
 script:
   - make && ctest --output-on-failure
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8cd8a9f..9cfe4df 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,6 +5,7 @@ if (POLICY CMP0042)
     cmake_policy(SET CMP0042 NEW)
 endif ()
 
+option(BUILD_SHARED_LIBS "Build language bindings shared" OFF)
 option(BUILD_PYTHON "Build Python wrappers"     ON)
 option(BUILD_MEX    "Build Matlab mex files"    OFF)
 
diff --git a/applications/CMakeLists.txt b/applications/CMakeLists.txt
index 9cd3741..b3728df 100644
--- a/applications/CMakeLists.txt
+++ b/applications/CMakeLists.txt
@@ -5,10 +5,10 @@ if (NOT MSVC)
 endif()
 
 add_executable(segyinfo segyinfo.c)
-target_link_libraries(segyinfo segyio-static)
+target_link_libraries(segyinfo segyio)
 
 add_executable(segyinspect segyinspect.c)
-target_link_libraries(segyinspect segyio-static)
+target_link_libraries(segyinspect segyio)
 
 install(TARGETS segyinfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
 install(TARGETS segyinspect DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
diff --git a/appveyor.yml b/appveyor.yml
index 932c9f8..a30ab38 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -39,7 +39,7 @@ build_script:
     - IF "%platform%" == "x64" set W64="-GVisual Studio 14 2015 Win64"
     - mkdir build
     - pushd build
-    - cmake C:\projects\SegyIO %W64% %OFF% %LANG% -DCMAKE_BUILD_TYPE=%configuration% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%
+    - cmake C:\projects\SegyIO %W64% %OFF% %LANG% -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=%configuration% -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR%
     - cmake --build . --config %configuration% --target install
 
 test_script:
diff --git a/cmake/matlab.cmake b/cmake/matlab.cmake
index 2e9e69a..d2c70ab 100644
--- a/cmake/matlab.cmake
+++ b/cmake/matlab.cmake
@@ -201,12 +201,12 @@ macro(mex MEX_NAME )
             CFLAGS="${MEX_CFLAGS}"
             LDFLAGS="${MEX_LDFLAGS}"
             ${OBJECT}
-            $<TARGET_FILE:segyio-shared>
+            $<TARGET_FILE:segyio>
             -outdir ${CMAKE_CURRENT_BINARY_DIR}
             ${MEX_SOURCE_FILE}
             DEPENDS
             ${MEX_SOURCE_FILE}
-            segyio-shared
+            segyio
             segyutil.o
             )
 
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 2dc9e91..17da888 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -42,6 +42,13 @@ target_include_directories(
     $<INSTALL_INTERFACE:include>
     PRIVATE src)
 
+if (BUILD_SHARED_LIBS)
+    add_library(segyio ALIAS segyio-shared)
+else ()
+    add_library(segyio ALIAS segyio-static)
+    set_property(TARGET segyio-static PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif ()
+
 #
 # install & export
 #
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index d00a6d5..672c6c3 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -28,8 +28,8 @@ endif()
 
 add_library(_segyio MODULE segyio/_segyio.c)
 target_include_directories(_segyio PRIVATE ${PYTHON_INCLUDE_DIRS})
-target_link_libraries(_segyio segyio-shared ${PYTHON_LIBRARIES})
-export(TARGETS _segyio segyio-shared FILE segyio-config.cmake)
+target_link_libraries(_segyio segyio ${PYTHON_LIBRARIES})
+export(TARGETS _segyio segyio-shared segyio-static FILE segyio-config.cmake)
 
 add_python_package(pysegyio segyio
                     TARGETS _segyio

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/segyio.git



More information about the debian-science-commits mailing list