[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