[segyio] 63/376: Restructure cmake files

Jørgen Kvalsvik jokva-guest at moszumanska.debian.org
Wed Sep 20 08:04:08 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 136c654464f1147b0c5ef95e041dcba34502c54e
Author: Jørgen Kvalsvik <jokva at statoil.com>
Date:   Wed Oct 19 14:49:59 2016 +0200

    Restructure cmake files
    
    Move the C applications to the applications directory (from
    src/applications) and the build- and install instructions to
    application/'s cmake file.
    
    The language binding cmake files now internally handle the logic and
    variables as to if they're to be compiled or not, meaning the root cmake
    only has to include the python/mex directory.
    
    Warning compiler flag logic has been moved to cmake/default_warnings
    which will handle compiler differences, so that too much platform
    dependent noise isn't in the root cmake file.
    
    Some absolute paths are used over relative paths since it's no longer a
    guarantee that files in the cmake directory will be included or target
    something directly from the CMAKE_SOURCE_DIR.
---
 CMakeLists.txt                                   | 54 ++++++------------------
 applications/CMakeLists.txt                      | 19 +++++++--
 {src/applications => applications}/segyinfo.c    |  0
 {src/applications => applications}/segyinspect.c |  0
 cmake/default_warnings.cmake                     |  9 ++++
 cmake/python.cmake                               |  6 +--
 mex/CMakeLists.txt                               | 13 +++++-
 python/CMakeLists.txt                            |  6 +++
 8 files changed, 59 insertions(+), 48 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b54857f..324b3f2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -17,18 +17,14 @@ endif ()
 option(BUILD_MEX    "Build Matlab mex files"    OFF)
 option(BUILD_PYTHON "Build Python wrappers"     ON)
 
+include(cmake/check_includes.cmake)
+include(cmake/default_warnings.cmake)
 include(cmake/segyio_testing.cmake)
 enable_testing()
-include(cmake/check_includes.cmake)
 
-if (MSVC)
-    add_definitions("/W3 /wd4996")
-else() # assuming gcc-style options
-    set(C_WARNINGS "-Wall -Wextra -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wmissing-declarations -Wcast-qual -Wshadow -Wwrite-strings -Wchar-subscripts -Wredundant-decls")
+if (NOT MSVC)
     set(CMAKE_C_FLAGS "-std=c99 ${CMAKE_C_FLAGS}")
-    set(CMAKE_C_FLAGS_DEBUG "${C_WARNINGS} ${CMAKE_C_FLAGS_DEBUG}")
-    set(CMAKE_C_FLAGS_RELWITHDEBINFO "${C_WARNINGS} ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
-endif (MSVC)
+endif()
 
 if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
     set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "Default install path" FORCE)
@@ -39,11 +35,8 @@ if(NOT CMAKE_BUILD_TYPE)
 endif(NOT CMAKE_BUILD_TYPE)
 
 include_directories(src)
-
 set(SOURCE_FILES src/segyio/segy.c src/spec/segyspec.c)
 
-install(FILES src/segyio/segy.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/segyio)
-
 # The object library type is a reusable component for later builds: shared, static and python
 add_library(segyio-object OBJECT ${SOURCE_FILES})
 
@@ -56,35 +49,14 @@ add_library(segyio-shared SHARED $<TARGET_OBJECTS:segyio-object>)
 target_link_libraries(segyio-shared ${SEGYIO_LIBRARIES} ${SEGYIO_LIBRARIES})
 set_target_properties(segyio-shared PROPERTIES OUTPUT_NAME segyio CLEAN_DIRECT_OUTPUT 1)
 
-install(TARGETS segyio-static segyio-shared DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
-
-add_executable(segyinfo src/applications/segyinfo.c)
-target_link_libraries(segyinfo segyio-static)
-add_dependencies(segyinfo segyio-static)
-
-add_executable(segyinspect src/applications/segyinspect.c)
-target_link_libraries(segyinspect segyio-static)
-add_dependencies(segyinspect segyio-static)
-
-install(TARGETS segyinfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
-install(TARGETS segyinspect DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
-
-if (BUILD_MEX)
-    add_subdirectory(mex)
-    option(BUILD_MEX_TESTS "Build matlab mex tests" ON)
-else (BUILD_MEX)
-    unset(MATLAB_MCC CACHE)
-    unset(MATLAB_MEX CACHE)
-    unset(MATLAB_MEXEXT CACHE)
-    unset(MATLAB_ROOT CACHE)
-    unset(BUILD_MEX_TESTS CACHE)
-endif ()
-
-if (BUILD_PYTHON)
-    include(cmake/python.cmake)
-    add_subdirectory(python)
-endif ()
+# language bindings
+add_subdirectory(mex)
+add_subdirectory(python)
 
-add_subdirectory(tests)
-add_subdirectory(examples)
 add_subdirectory(applications)
+add_subdirectory(examples)
+add_subdirectory(tests)
+
+# install the library
+install(FILES src/segyio/segy.h DESTINATION ${CMAKE_INSTALL_PREFIX}/include/segyio)
+install(TARGETS segyio-static segyio-shared DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
diff --git a/applications/CMakeLists.txt b/applications/CMakeLists.txt
index 08d5803..ad30c64 100644
--- a/applications/CMakeLists.txt
+++ b/applications/CMakeLists.txt
@@ -1,5 +1,18 @@
 configure_file(segyviewer.py segyviewer COPYONLY)
 
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/segyviewer
-        PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_EXECUTE WORLD_READ
-        DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+if (BUILD_PYTHON)
+    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/segyviewer
+            PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_EXECUTE WORLD_READ
+            DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+endif ()
+
+add_executable(segyinfo segyinfo.c)
+target_link_libraries(segyinfo segyio-static)
+add_dependencies(segyinfo segyio-static)
+
+add_executable(segyinspect segyinspect.c)
+target_link_libraries(segyinspect segyio-static)
+add_dependencies(segyinspect segyio-static)
+
+install(TARGETS segyinfo DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+install(TARGETS segyinspect DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
diff --git a/src/applications/segyinfo.c b/applications/segyinfo.c
similarity index 100%
rename from src/applications/segyinfo.c
rename to applications/segyinfo.c
diff --git a/src/applications/segyinspect.c b/applications/segyinspect.c
similarity index 100%
rename from src/applications/segyinspect.c
rename to applications/segyinspect.c
diff --git a/cmake/default_warnings.cmake b/cmake/default_warnings.cmake
new file mode 100644
index 0000000..faf6f98
--- /dev/null
+++ b/cmake/default_warnings.cmake
@@ -0,0 +1,9 @@
+if (NOT MSVC)
+    # assuming gcc-style options
+    set(C_WARNINGS "-Wall -Wextra -pedantic -Wformat-nonliteral -Wcast-align -Wpointer-arith -Wmissing-declarations -Wcast-qual -Wshadow -Wwrite-strings -Wchar-subscripts -Wredundant-decls")
+    set(CMAKE_C_FLAGS_DEBUG "${C_WARNINGS} ${CMAKE_C_FLAGS_DEBUG}")
+    set(CMAKE_C_FLAGS_RELWITHDEBINFO "${C_WARNINGS} ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+else() 
+    add_definitions("/W3 /wd4996")
+endif ()
+
diff --git a/cmake/python.cmake b/cmake/python.cmake
index ed9f01c..219dead 100644
--- a/cmake/python.cmake
+++ b/cmake/python.cmake
@@ -1,10 +1,10 @@
-include(cmake/find_python_module.cmake)
-include(cmake/python_module_version.cmake)
+include(${CMAKE_SOURCE_DIR}/cmake/find_python_module.cmake)
+include(${CMAKE_SOURCE_DIR}/cmake/python_module_version.cmake)
 
 find_package(PythonInterp)
 find_package(PythonLibs REQUIRED)
 
-configure_file(cmake/test_runner.py tests/test_runner.py COPYONLY)
+configure_file(${CMAKE_SOURCE_DIR}/cmake/test_runner.py ${CMAKE_BINARY_DIR}/tests/test_runner.py COPYONLY)
 
 if (EXISTS "/etc/debian_version")
     set( PYTHON_PACKAGE_PATH "dist-packages")
diff --git a/mex/CMakeLists.txt b/mex/CMakeLists.txt
index 6fecdff..4fd2b3a 100644
--- a/mex/CMakeLists.txt
+++ b/mex/CMakeLists.txt
@@ -1,4 +1,15 @@
-include(../cmake/matlab.cmake REQUIRED)
+if (NOT BUILD_MEX)
+    unset(MATLAB_MCC CACHE)
+    unset(MATLAB_MEX CACHE)
+    unset(MATLAB_MEXEXT CACHE)
+    unset(MATLAB_ROOT CACHE)
+    unset(BUILD_MEX_TESTS CACHE)
+    return()
+endif()
+
+include(${CMAKE_SOURCE_DIR}/cmake/matlab.cmake REQUIRED)
+
+option(BUILD_MEX_TESTS "Build matlab mex tests" ON)
 
 configure_file(Segy.m Segy.m)
 configure_file(SegySpec.m SegySpec.m)
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index da955a6..3c6ecb3 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -1,3 +1,9 @@
+if (NOT BUILD_PYTHON)
+    return()
+endif()
+
+include(${CMAKE_SOURCE_DIR}/cmake/python.cmake)
+
 if (NOT DEFINED PYTHON_EXECUTABLE)
     message("Python interpreter not found - Python wrappers not enabled")
     unset(BUILD_PYTHON)

-- 
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