Add CMake build system
This commit adds experimental CMake build support for ISCE2. The only changes involved should be adding CMakeLists.txt files. All current source files, headers, and other functionality, including the existing SCons build system, should be unaffected. Some functionality is still a work-in-progress. These should all be marked as TODO in the CMakeLists.txt files. `grep TODO **.txt` Please read CMakeLists.txt and .cmake/*.cmake for more info.LT1AB
parent
48fda5a647
commit
46fef17f39
|
|
@ -0,0 +1,14 @@
|
|||
# Tries to run Cython using `python -m cython`
|
||||
execute_process(COMMAND ${Python_EXECUTABLE} -m cython --help
|
||||
RESULT_VARIABLE cython_status
|
||||
ERROR_QUIET OUTPUT_QUIET)
|
||||
|
||||
if(NOT cython_status)
|
||||
set(CYTHON_EXECUTABLE ${Python_EXECUTABLE} -m cython CACHE STRING
|
||||
"Cython executable")
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Cython REQUIRED_VARS CYTHON_EXECUTABLE)
|
||||
|
||||
mark_as_advanced(CYTHON_EXECUTABLE)
|
||||
|
|
@ -0,0 +1,169 @@
|
|||
#[[
|
||||
Usage:
|
||||
find_package(FFTW [REQUIRED] [QUIET] [COMPONENTS ...])
|
||||
|
||||
Be warned that this will only search for FFTW3 libraries.
|
||||
|
||||
It sets the following variables:
|
||||
FFTW_FOUND .. true if FFTW is found on the system
|
||||
FFTW_[component]_LIB_FOUND .. true if the component is found (see below)
|
||||
FFTW_LIBRARIES .. full paths to all found FFTW libraries
|
||||
FFTW_[component]_LIB .. full path to one component (see below)
|
||||
FFTW_INCLUDE_DIRS .. FFTW include directory paths
|
||||
|
||||
The following variables will be checked by the function
|
||||
FFTW_USE_STATIC_LIBS .. if true, only static libraries are searched
|
||||
FFTW_ROOT .. if set, search under this path first
|
||||
|
||||
Paths will be searched in the following order:
|
||||
FFTW_ROOT (if provided)
|
||||
PkgConfig paths (if found)
|
||||
Library/include installation directories
|
||||
Default find_* paths
|
||||
|
||||
The following component library locations will be defined (if found):
|
||||
FFTW_FLOAT_LIB
|
||||
FFTW_DOUBLE_LIB
|
||||
FFTW_LONGDOUBLE_LIB
|
||||
FFTW_FLOAT_THREADS_LIB
|
||||
FFTW_DOUBLE_THREADS_LIB
|
||||
FFTW_LONGDOUBLE_THREADS_LIB
|
||||
FFTW_FLOAT_OMP_LIB
|
||||
FFTW_DOUBLE_OMP_LIB
|
||||
FFTW_LONGDOUBLE_OMP_LIB
|
||||
|
||||
The following IMPORTED targets will be created (if found):
|
||||
FFTW::Float
|
||||
FFTW::Double
|
||||
FFTW::LongDouble
|
||||
FFTW::FloatThreads
|
||||
FFTW::DoubleThreads
|
||||
FFTW::LongDoubleThreads
|
||||
FFTW::FloatOMP
|
||||
FFTW::DoubleOMP
|
||||
FFTW::LongDoubleOMP
|
||||
]]
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
|
||||
if(NOT FFTW_ROOT AND DEFINED ENV{FFTWDIR})
|
||||
set(FFTW_ROOT $ENV{FFTWDIR})
|
||||
endif()
|
||||
|
||||
# Check if we can use PkgConfig
|
||||
find_package(PkgConfig)
|
||||
|
||||
# Determine from PKG
|
||||
if(PKG_CONFIG_FOUND)
|
||||
pkg_check_modules(PKG_FFTW QUIET fftw3)
|
||||
endif()
|
||||
|
||||
# Check whether to search static or dynamic libs
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES_SAV ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
||||
|
||||
if(${FFTW_USE_STATIC_LIBS})
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
else()
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV})
|
||||
endif()
|
||||
|
||||
# Paths to pass to find_library for each component
|
||||
set(findlib_paths
|
||||
${FFTW_ROOT}
|
||||
${PKG_FFTW_LIBRARY_DIRS}
|
||||
${LIB_INSTALL_DIR}
|
||||
)
|
||||
|
||||
# Find include directory
|
||||
find_path(FFTW_INCLUDE_DIRS
|
||||
NAMES fftw3.h
|
||||
PATHS ${FFTW_ROOT}
|
||||
${PKG_FFTW_INCLUDE_DIRS}
|
||||
${INCLUDE_INSTALL_DIR}
|
||||
PATH_SUFFIXES include
|
||||
)
|
||||
|
||||
set(FFTW_LIBRARIES "")
|
||||
|
||||
foreach(dtype Float Double LongDouble)
|
||||
|
||||
# Single-letter suffix for the library name
|
||||
string(REGEX REPLACE "(.).*" "\\1" letter ${dtype})
|
||||
string(TOLOWER ${letter} letter)
|
||||
# The double-precision library doesn't use a suffix
|
||||
if("${letter}" STREQUAL "d")
|
||||
set(letter "")
|
||||
endif()
|
||||
|
||||
foreach(system "" Threads OMP)
|
||||
|
||||
# CamelCase component name used for interface libraries
|
||||
# e.g. FloatThreads
|
||||
set(component ${dtype}${system})
|
||||
|
||||
# Component library location variable used via find_library
|
||||
# e.g. FFTW_DOUBLE_THREADS_LIB
|
||||
if(system)
|
||||
set(libvar FFTW_${dtype}_${system}_LIB)
|
||||
else()
|
||||
set(libvar FFTW_${dtype}_LIB)
|
||||
endif()
|
||||
string(TOUPPER ${libvar} libvar)
|
||||
|
||||
# Filename root common to all libraries
|
||||
set(libname fftw3${letter})
|
||||
if(system)
|
||||
string(TOLOWER ${system} systemlower)
|
||||
set(libname ${libname}_${systemlower})
|
||||
endif()
|
||||
# Actual filenames looked for by find_library
|
||||
set(libnames
|
||||
${libname}
|
||||
lib${libname}3-3
|
||||
)
|
||||
|
||||
find_library(
|
||||
${libvar}
|
||||
NAMES ${libnames}
|
||||
PATHS ${findlib_paths}
|
||||
PATH_SUFFIXES lib lib64
|
||||
)
|
||||
|
||||
# Tell find_package whether this component was found
|
||||
set(FFTW_${component}_FIND_QUIETLY TRUE)
|
||||
find_package_handle_standard_args(FFTW_${component}
|
||||
HANDLE_COMPONENTS REQUIRED_VARS ${libvar} FFTW_INCLUDE_DIRS)
|
||||
# Also set the value of the legacy library-variable
|
||||
# (Will be set to *-NOTFOUND if not found)
|
||||
set(${libvar} ${FFTW_${component}})
|
||||
|
||||
# If the library was found:
|
||||
if(${libvar} AND NOT TARGET FFTW::${component})
|
||||
# Add it to the list of FFTW libraries
|
||||
list(APPEND FFTW_LIBRARIES ${${libvar}})
|
||||
|
||||
# Create a corresponding interface library
|
||||
add_library(FFTW::${component} IMPORTED INTERFACE)
|
||||
target_include_directories(
|
||||
FFTW::${component} SYSTEM INTERFACE ${FFTW_INCLUDE_DIRS})
|
||||
target_link_libraries(
|
||||
FFTW::${component} INTERFACE ${${libvar}})
|
||||
endif()
|
||||
|
||||
mark_as_advanced(${libvar})
|
||||
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
# Restore saved find_library suffixes
|
||||
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_SAV})
|
||||
|
||||
find_package_handle_standard_args(FFTW
|
||||
REQUIRED_VARS FFTW_LIBRARIES FFTW_INCLUDE_DIRS
|
||||
HANDLE_COMPONENTS
|
||||
)
|
||||
|
||||
mark_as_advanced(
|
||||
FFTW_INCLUDE_DIRS
|
||||
FFTW_LIBRARIES
|
||||
)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
find_package(GDAL)
|
||||
|
||||
# Make a compatibility GDAL::GDAL interface target
|
||||
# In CMake >= 3.14, this already exists for us :)
|
||||
if(GDAL_FOUND AND NOT TARGET GDAL::GDAL)
|
||||
add_library(GDAL::GDAL IMPORTED INTERFACE)
|
||||
target_include_directories(GDAL::GDAL SYSTEM INTERFACE ${GDAL_INCLUDE_DIRS})
|
||||
target_link_libraries(GDAL::GDAL INTERFACE ${GDAL_LIBRARIES})
|
||||
endif()
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
find_package(Motif)
|
||||
|
||||
if(MOTIF_FOUND AND NOT TARGET Motif::Motif)
|
||||
add_library(Motif::Motif IMPORTED INTERFACE)
|
||||
target_include_directories(Motif::Motif
|
||||
SYSTEM INTERFACE ${MOTIF_INCLUDE_DIR})
|
||||
target_link_libraries(Motif::Motif
|
||||
INTERFACE ${MOTIF_LIBRARIES})
|
||||
endif()
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
find_package(X11)
|
||||
|
||||
if(X11_FOUND)
|
||||
|
||||
foreach(component
|
||||
Xmu
|
||||
Xt
|
||||
)
|
||||
|
||||
if(X11_${Xmu}_FOUND AND NOT TARGET X11::${component})
|
||||
add_library(X11::${component} IMPORTED INTERFACE)
|
||||
target_include_directories(X11::${component} SYSTEM
|
||||
INTERFACE ${X11_${component}_INCLUDE_PATH})
|
||||
target_link_libraries(X11::${component}
|
||||
INTERFACE ${X11_${component}_LIB})
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
|
@ -0,0 +1,148 @@
|
|||
# Define a function to create Cython modules.
|
||||
#
|
||||
# For more information on the Cython project, see http://cython.org/.
|
||||
# "Cython is a language that makes writing C extensions for the Python language
|
||||
# as easy as Python itself."
|
||||
#
|
||||
# This file defines a CMake function to build a Cython Python module.
|
||||
# To use it, first include this file.
|
||||
#
|
||||
# include(UseCython)
|
||||
#
|
||||
# Then call cython_add_module to create a module.
|
||||
#
|
||||
# cython_add_module(<module_name> <src1> <src2> ... <srcN>)
|
||||
#
|
||||
# Where <module_name> is the name of the resulting Python module and
|
||||
# <src1> <src2> ... are source files to be compiled into the module, e.g. *.pyx,
|
||||
# *.py, *.cxx, etc. A CMake target is created with name <module_name>. This can
|
||||
# be used for target_link_libraries(), etc.
|
||||
#
|
||||
# The sample paths set with the CMake include_directories() command will be used
|
||||
# for include directories to search for *.pxd when running the Cython complire.
|
||||
#
|
||||
# Cache variables that effect the behavior include:
|
||||
#
|
||||
# CYTHON_ANNOTATE
|
||||
# CYTHON_NO_DOCSTRINGS
|
||||
# CYTHON_FLAGS
|
||||
#
|
||||
# See also FindCython.cmake
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2011 Kitware, Inc.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#=============================================================================
|
||||
|
||||
# Configuration options.
|
||||
set( CYTHON_ANNOTATE OFF
|
||||
CACHE BOOL "Create an annotated .html file when compiling *.pyx." )
|
||||
set( CYTHON_NO_DOCSTRINGS OFF
|
||||
CACHE BOOL "Strip docstrings from the compiled module." )
|
||||
set( CYTHON_FLAGS "" CACHE STRING
|
||||
"Extra flags to the cython compiler." )
|
||||
mark_as_advanced( CYTHON_ANNOTATE CYTHON_NO_DOCSTRINGS CYTHON_FLAGS )
|
||||
|
||||
find_package(Cython REQUIRED)
|
||||
find_package(Python REQUIRED COMPONENTS Development)
|
||||
|
||||
# Check the version of Cython
|
||||
execute_process( COMMAND ${CYTHON_EXECUTABLE} --version
|
||||
OUTPUT_VARIABLE CYTHON_VERSION ERROR_VARIABLE CYTHON_VERSION )
|
||||
string(REGEX MATCH "([0-9]|\\.)+" CYTHON_VERSION ${CYTHON_VERSION})
|
||||
if((CYTHON_VERSION VERSION_GREATER_EQUAL 0.28.1))
|
||||
message(STATUS "Found Cython: ${CYTHON_VERSION}")
|
||||
else()
|
||||
message(FATAL_ERROR "Could not find Cython version >= 0.28.1")
|
||||
endif()
|
||||
|
||||
# Create a *.cxx file from a *.pyx file.
|
||||
# Input the generated file basename. The generate file will put into the variable
|
||||
# placed in the "generated_file" argument. Finally all the *.py and *.pyx files.
|
||||
function( compile_pyx _name generated_file )
|
||||
|
||||
set( pyx_locations "" )
|
||||
|
||||
foreach( pyx_file ${ARGN} )
|
||||
# Get the include directories.
|
||||
get_source_file_property( pyx_location ${pyx_file} LOCATION )
|
||||
get_filename_component( pyx_path ${pyx_location} PATH )
|
||||
list( APPEND pyx_locations "${pyx_location}" )
|
||||
endforeach() # pyx_file
|
||||
|
||||
# Set additional flags.
|
||||
set(cython_args "")
|
||||
if( CYTHON_ANNOTATE )
|
||||
list(APPEND cython_args "--annotate" )
|
||||
endif()
|
||||
|
||||
if( CYTHON_NO_DOCSTRINGS )
|
||||
list(APPEND cython_args "--no-docstrings")
|
||||
endif()
|
||||
|
||||
if("${CMAKE_BUILD_TYPE}" STREQUAL "Debug" OR
|
||||
"${CMAKE_BUILD_TYPE}" STREQUAL "RelWithDebInfo")
|
||||
set(APPEND cython_args "--gdb")
|
||||
endif()
|
||||
|
||||
list(APPEND cython_args "-${Python_VERSION_MAJOR}")
|
||||
|
||||
# Include directory arguments.
|
||||
list(REMOVE_DUPLICATES cmake_include_directories)
|
||||
foreach(_include_dir ${cmake_include_directories})
|
||||
list(APPEND cython_args "-I${_include_dir}")
|
||||
endforeach()
|
||||
|
||||
# Determining generated file name.
|
||||
set(_generated_file ${CMAKE_CURRENT_BINARY_DIR}/${_name}.cxx)
|
||||
set_source_files_properties( ${_generated_file} PROPERTIES GENERATED TRUE )
|
||||
set( ${generated_file} ${_generated_file} PARENT_SCOPE )
|
||||
|
||||
# Add the command to run the compiler.
|
||||
add_custom_command( OUTPUT ${_generated_file}
|
||||
COMMAND ${CYTHON_EXECUTABLE}
|
||||
ARGS --cplus ${cython_args} ${CYTHON_FLAGS}
|
||||
--output-file ${_generated_file} ${pyx_locations}
|
||||
DEPENDS ${pyx_locations}
|
||||
IMPLICIT_DEPENDS CXX
|
||||
COMMENT "Compiling Cython CXX source for ${_name}..."
|
||||
)
|
||||
endfunction()
|
||||
|
||||
# cython_add_module( <name> src1 src2 ... srcN )
|
||||
# Build the Cython Python module.
|
||||
function( cython_add_module _name )
|
||||
set( pyx_module_sources "" )
|
||||
set( other_module_sources "" )
|
||||
foreach( _file ${ARGN} )
|
||||
if( ${_file} MATCHES ".*\\.py[x]?$" )
|
||||
list( APPEND pyx_module_sources ${_file} )
|
||||
else()
|
||||
list( APPEND other_module_sources ${_file} )
|
||||
endif()
|
||||
endforeach()
|
||||
set( CYTHON_FLAGS ${CYTHON_FLAGS} -X embedsignature=True)
|
||||
compile_pyx( ${_name} generated_file ${pyx_module_sources} )
|
||||
Python_add_library( ${_name} MODULE ${generated_file} ${other_module_sources} )
|
||||
if( APPLE )
|
||||
set_target_properties( ${_name} PROPERTIES LINK_FLAGS "-undefined dynamic_lookup" )
|
||||
endif()
|
||||
# ignore overflow warnings caused by Python's implicit conversions
|
||||
set_property( SOURCE ${generated_file}
|
||||
PROPERTY COMPILE_OPTIONS -Wno-overflow APPEND )
|
||||
# ignore Numpy deprecated API warning
|
||||
# ignore warnings for using the #warning extension directive
|
||||
# TODO fix -Wno-cpp for nvcc
|
||||
# target_compile_options( ${_name} PRIVATE -Wno-cpp -Wno-pedantic)
|
||||
endfunction()
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
# TODO (global build flags)
|
||||
# These definitions and compile options are
|
||||
# set globally for convenience.
|
||||
# Perhaps we should apply them only as needed on a
|
||||
# per-target basis, and propagate them via the interface?
|
||||
add_definitions(-DNEEDS_F77_TRANSLATION -DF77EXTERNS_LOWERCASE_TRAILINGBAR)
|
||||
add_compile_options(
|
||||
$<$<COMPILE_LANGUAGE:Fortran>:-ffixed-line-length-none>
|
||||
$<$<COMPILE_LANGUAGE:Fortran>:-fno-range-check>
|
||||
$<$<COMPILE_LANGUAGE:Fortran>:-fno-second-underscore>)
|
||||
|
||||
# Set up build flags for C++ and Fortran.
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED y)
|
||||
set(CMAKE_CXX_EXTENSIONS n)
|
||||
|
||||
# TODO (fix RPATHs)
|
||||
# We have to hack our RPATHs a bit for these shared libraries to be
|
||||
# loaded by others on the install-side. Maybe these libraries should
|
||||
# be combined and/or installed to a common ISCE2 lib directory.
|
||||
# Is there a semantic way to propagate their RPATHs
|
||||
# without using these global variables?
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
|
||||
list(APPEND CMAKE_INSTALL_RPATH
|
||||
${CMAKE_INSTALL_PREFIX}/${ISCE2_PKG}/components/isceobj/Util
|
||||
)
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
# There are a lot of similarly-built modules in isce2
|
||||
# so we add some helpers here to avoid code duplication.
|
||||
# TODO maybe these helpers should have a unique prefix, e.g. "isce2_"
|
||||
|
||||
# Compute a prefix based on the current project subdir
|
||||
# This disambiguates tests with similar names and
|
||||
# allows better pattern matching using `ctest -R`
|
||||
macro(isce2_get_dir_prefix)
|
||||
file(RELATIVE_PATH dir_prefix ${CMAKE_SOURCE_DIR} ${CMAKE_CURRENT_LIST_DIR})
|
||||
string(REPLACE "/" "." dir_prefix ${dir_prefix})
|
||||
endmacro()
|
||||
|
||||
# Usage:
|
||||
# add_exe_test(main.cpp helpers.F [additional_source.c ...] )
|
||||
# or
|
||||
# add_exe_test(target_from_add_executable)
|
||||
# The latter form is useful when you need to add dependencies,
|
||||
# since the former mangles the name via dir_prefix.
|
||||
function(add_exe_test testfile)
|
||||
isce2_get_dir_prefix()
|
||||
if(TARGET ${testfile})
|
||||
set(target ${testfile})
|
||||
set(testname ${dir_prefix}.${testfile})
|
||||
else()
|
||||
set(target ${dir_prefix}.${testfile})
|
||||
add_executable(${target} ${testfile} ${ARGN})
|
||||
set(testname ${target})
|
||||
endif()
|
||||
add_test(NAME ${testname} COMMAND ${target})
|
||||
endfunction()
|
||||
|
||||
# Usage:
|
||||
# add_python_test(mytest.py)
|
||||
# This is simpler than add_exe_test since there is no compilation step.
|
||||
# The python file is esecuted directly, using the exit status as the result.
|
||||
function(add_python_test testfile)
|
||||
isce2_get_dir_prefix()
|
||||
set(testname ${dir_prefix}.${testfile})
|
||||
add_test(NAME ${testname} COMMAND
|
||||
${Python_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/${testfile})
|
||||
set_tests_properties(${testname} PROPERTIES
|
||||
ENVIRONMENT PYTHONPATH=${CMAKE_INSTALL_PREFIX}/${PYTHON_MODULE_DIR})
|
||||
endfunction()
|
||||
|
||||
# Computes the relative path from the current binary dir to the base binary
|
||||
# dir, and installs the given files/targets using this relative path with
|
||||
# respect to the python package dir.
|
||||
# This greatly simplifies installation since the source dir structure
|
||||
# primarily mimics the python package directory structure.
|
||||
# Note that it first checks if a provided file is a target,
|
||||
# and if so, installs it as a TARGET instead. Make sure your
|
||||
# filenames and target names don't have any overlap!
|
||||
|
||||
function(InstallSameDir)
|
||||
mark_as_advanced(isce2_bin_base)
|
||||
foreach(name ${ARGN})
|
||||
if(TARGET ${name})
|
||||
set(installtype TARGETS)
|
||||
else()
|
||||
set(installtype FILES)
|
||||
endif()
|
||||
file(RELATIVE_PATH path ${isce2_bin_dir} ${CMAKE_CURRENT_BINARY_DIR})
|
||||
install(${installtype} ${name}
|
||||
DESTINATION ${ISCE2_PKG}/${path}
|
||||
)
|
||||
endforeach()
|
||||
endfunction()
|
||||
# We use this instead of CMAKE_BINARY_DIR to handle
|
||||
# cases where isce2 is added as a subdirectory
|
||||
set(isce2_bin_dir ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH
|
||||
"ISCE2 root build directory")
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
|
||||
|
||||
project(isce2 LANGUAGES C CXX Fortran)
|
||||
|
||||
include(CheckLanguage)
|
||||
check_language(CUDA)
|
||||
if(CMAKE_CUDA_COMPILER)
|
||||
enable_language(CUDA)
|
||||
endif()
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/.cmake)
|
||||
|
||||
find_package(Python 3.5 REQUIRED COMPONENTS Interpreter Development)
|
||||
find_package(FFTW REQUIRED)
|
||||
find_package(Motif)
|
||||
find_package(OpenMP)
|
||||
# Find these, and create IMPORTED INTERFACE libraries for them if they exist
|
||||
include(TargetGDAL)
|
||||
include(TargetMotif)
|
||||
include(TargetX11)
|
||||
include(UseCython)
|
||||
|
||||
if(NOT DEFINED PYTHON_MODULE_DIR)
|
||||
set(PYTHON_MODULE_DIR packages CACHE PATH
|
||||
"Python module directory (relative to install prefix)")
|
||||
endif()
|
||||
if(NOT DEFINED ISCE2_PKG)
|
||||
set(ISCE2_PKG ${PYTHON_MODULE_DIR}/isce2 CACHE PATH
|
||||
"ISCE 2 python package install dir (relative to install prefix)")
|
||||
endif()
|
||||
|
||||
include(isce2_buildflags)
|
||||
include(isce2_helpers)
|
||||
|
||||
enable_testing()
|
||||
|
||||
add_subdirectory(applications)
|
||||
add_subdirectory(components)
|
||||
add_subdirectory(contrib components/contrib)
|
||||
add_subdirectory(defaults)
|
||||
add_subdirectory(library)
|
||||
add_subdirectory(test)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
release_history.py
|
||||
)
|
||||
|
||||
# We also need to create an empty directory for help
|
||||
install(DIRECTORY DESTINATION ${ISCE2_PKG}/helper)
|
||||
|
||||
# CMake will install a python package named "isce2",
|
||||
# but legacy scripts import it as simply "isce".
|
||||
# Make a symlink isce -> isce2 for compatibility.
|
||||
set(symsrc ${CMAKE_INSTALL_PREFIX}/${ISCE2_PKG})
|
||||
set(symdest ${symsrc}/../isce)
|
||||
install(CODE "execute_process(COMMAND
|
||||
${CMAKE_COMMAND} -E create_symlink ${symsrc} ${symdest})")
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
set(files
|
||||
__init__.py
|
||||
dataTileManager.py
|
||||
dem.py
|
||||
demdb.py
|
||||
downsampleDEM.py
|
||||
fixImageXml.py
|
||||
gdal2isce_xml.py
|
||||
imageMath.py
|
||||
insarApp.py
|
||||
isce2geotiff.py
|
||||
isce2gis.py
|
||||
isceApp.py
|
||||
iscehelp.py
|
||||
looks.py
|
||||
make_raw.py
|
||||
mdx.py
|
||||
scansarApp.py
|
||||
stitcher.py
|
||||
stripmapApp.py
|
||||
topsApp.py
|
||||
upsampleDem.py
|
||||
waterMask.py
|
||||
wbd.py
|
||||
wbdStitcher.py
|
||||
)
|
||||
|
||||
install(PROGRAMS ${files}
|
||||
DESTINATION ${ISCE2_PKG}/applications)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
add_subdirectory(isceobj)
|
||||
add_subdirectory(iscesys)
|
||||
add_subdirectory(mroipac)
|
||||
add_subdirectory(stdproc)
|
||||
add_subdirectory(zerodop)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Attitude.py
|
||||
)
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
add_subdirectory(Util)
|
||||
add_subdirectory(Sensor)
|
||||
|
||||
add_subdirectory(Attitude)
|
||||
add_subdirectory(Catalog)
|
||||
add_subdirectory(Constants)
|
||||
add_subdirectory(Doppler)
|
||||
add_subdirectory(Filter)
|
||||
add_subdirectory(Image)
|
||||
add_subdirectory(ImageFilter)
|
||||
add_subdirectory(InsarProc)
|
||||
add_subdirectory(IsceProc)
|
||||
add_subdirectory(LineAccessor)
|
||||
add_subdirectory(Location)
|
||||
add_subdirectory(Orbit)
|
||||
add_subdirectory(Planet)
|
||||
add_subdirectory(Platform)
|
||||
add_subdirectory(Radar)
|
||||
add_subdirectory(Registry)
|
||||
add_subdirectory(Renderer)
|
||||
add_subdirectory(RtcProc)
|
||||
add_subdirectory(ScansarProc)
|
||||
add_subdirectory(Scene)
|
||||
add_subdirectory(Stack)
|
||||
add_subdirectory(StripmapProc)
|
||||
add_subdirectory(TopsProc)
|
||||
add_subdirectory(Unwrap)
|
||||
add_subdirectory(XmlUtil)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Catalog.py
|
||||
OrderedDict.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Constants.py
|
||||
)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Calc_dop.py
|
||||
DefaultDopp.py
|
||||
Doppler.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Filter.py
|
||||
)
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
add_subdirectory(test)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
AmpImage.py
|
||||
BILImage.py
|
||||
DemImage.py
|
||||
Image.py
|
||||
IntImage.py
|
||||
OffsetImage.py
|
||||
RawImage.py
|
||||
RawIQImage.py
|
||||
RgImage.py
|
||||
SlcImage.py
|
||||
StreamImage.py
|
||||
UnwImage.py
|
||||
)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
add_python_test(testRawImagePy.py)
|
||||
add_python_test(testSlcImagePy.py)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
add_subdirectory(test)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
BandExtractor.py
|
||||
ComplexExtractor.py
|
||||
FilterFactory.py
|
||||
ImageFilter.py
|
||||
)
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
add_python_test(testFilter.py)
|
||||
add_exe_test(test.cpp)
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
createDem.py
|
||||
extractInfo.py
|
||||
Factories.py
|
||||
__InsarProc.py
|
||||
InsarProc.py
|
||||
runCoherence.py
|
||||
runCorrect.py
|
||||
runCreateWbdMask.py
|
||||
runEstimateHeights_peg.py
|
||||
runEstimateHeights.py
|
||||
runFdMocomp.py
|
||||
runFilter.py
|
||||
runFormSLCisce.py
|
||||
runFormSLC.py
|
||||
runFormSLCTSX.py
|
||||
runGeocode.py
|
||||
runGrass.py
|
||||
runMaskImages.py
|
||||
runMocompbaseline.py
|
||||
runOffoutliers.py
|
||||
runOffsetprf_ampcor.py
|
||||
runOffsetprf_none.py
|
||||
runOffsetprf_nstage.py
|
||||
runOffsetprf.py
|
||||
runOrbit2sch.py
|
||||
runPrepareResamps.py
|
||||
runPreprocessor.py
|
||||
runPulseTiming.py
|
||||
runResamp_image.py
|
||||
runResamp_only.py
|
||||
runResamp.py
|
||||
runRgoffset_ampcor.py
|
||||
runRgoffset_none.py
|
||||
runRgoffset_nstage.py
|
||||
runRgoffset.py
|
||||
runSetmocomppathFromFrame.py
|
||||
runSetmocomppath.py
|
||||
runShadecpx2rg.py
|
||||
runTopo.py
|
||||
runUnwrap2Stage.py
|
||||
runUnwrapGrass.py
|
||||
runUnwrapIcu.py
|
||||
runUnwrapSnaphu.py
|
||||
runUpdatePreprocInfo.py
|
||||
)
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
createDem.py
|
||||
extractInfo.py
|
||||
Factories.py
|
||||
IsceProc.py
|
||||
runCoherence.py
|
||||
runCorrect.py
|
||||
runCrossmul.py
|
||||
runEstimateHeights_peg.py
|
||||
runEstimateHeights.py
|
||||
runFilter.py
|
||||
runFormSLCisce.py
|
||||
runFormSLC.py
|
||||
runFormSLCTSX.py
|
||||
runGeocode.py
|
||||
runGrass.py
|
||||
runISSI.py
|
||||
runMocompbaseline.py
|
||||
runOffoutliers.py
|
||||
runOffsetprf_ampcor.py
|
||||
runOffsetprf_nstage.py
|
||||
runOffsetprf.py
|
||||
runOrbit2sch.py
|
||||
runPrepareResamps.py
|
||||
runPreprocessor.py
|
||||
runPulseTiming.py
|
||||
runResamp_image.py
|
||||
runResamp_only.py
|
||||
runResamp.py
|
||||
runResamp_slc.py
|
||||
runRgoffset_ampcor.py
|
||||
runRgoffset_none.py
|
||||
runRgoffset_nstage.py
|
||||
runRgoffset.py
|
||||
runSetmocomppathFromFrame.py
|
||||
runSetmocomppath.py
|
||||
runShadecpx2rg.py
|
||||
runTopo.py
|
||||
runUnwrapGrass.py
|
||||
runUnwrapIcu.py
|
||||
runUnwrapSnaphu.py
|
||||
runUpdatePreprocInfo.py
|
||||
)
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
add_library(LineAccessor_static STATIC
|
||||
src/ImageAccessor.cpp
|
||||
src/LineAccessor.cpp
|
||||
src/LineAccessorF.cpp
|
||||
)
|
||||
target_include_directories(LineAccessor_static PUBLIC include)
|
||||
set_property(TARGET LineAccessor_static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
Python_add_library(LineAccessor MODULE
|
||||
bindings/LineAccessormodule.cpp
|
||||
)
|
||||
target_link_libraries(LineAccessor PUBLIC LineAccessor_static)
|
||||
|
||||
InstallSameDir(
|
||||
LineAccessor
|
||||
__init__.py
|
||||
LineAccessorPy.py
|
||||
)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
add_subdirectory(test)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
Coordinate.py
|
||||
Offset.py
|
||||
Peg.py
|
||||
SCH.py
|
||||
)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
add_python_test(test_offset.py)
|
||||
add_python_test(test_pegfactory.py)
|
||||
add_python_test(test_sch.py)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
Python_add_library(orbitHermite MODULE
|
||||
src/orbitHermiteC.c
|
||||
src/orbithermite.F
|
||||
)
|
||||
target_include_directories(orbitHermite PUBLIC include)
|
||||
|
||||
InstallSameDir(
|
||||
orbitHermite
|
||||
__init__.py
|
||||
ODR.py
|
||||
Orbit.py
|
||||
OrbitExtender.py
|
||||
PDS.py
|
||||
PRC.py
|
||||
Spice.py
|
||||
)
|
||||
|
|
@ -0,0 +1 @@
|
|||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
AstronomicalHandbook.py
|
||||
Ellipsoid.py
|
||||
Planet.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Platform.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Radar.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Registry.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
BaseRenderer.py
|
||||
XmlRenderer.py
|
||||
)
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Factories.py
|
||||
RtcProc.py
|
||||
runLooks.py
|
||||
runNormalize.py
|
||||
runPreprocessor.py
|
||||
runTopo.py
|
||||
runVerifyDEM.py
|
||||
)
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Factories.py
|
||||
SConscript
|
||||
ScansarProc.py
|
||||
runCommonRangeSpectra.py
|
||||
runEqualizeSlcs.py
|
||||
runEstimateBurstSync.py
|
||||
runPreprocessor.py
|
||||
)
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
add_library(concatenate SHARED
|
||||
src/frame_concatenate.c
|
||||
src/swst_resample.c
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
concatenate
|
||||
__init__.py
|
||||
Frame.py
|
||||
Track.py
|
||||
)
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
add_subdirectory(db)
|
||||
add_subdirectory(TOPS)
|
||||
|
||||
set(installfiles
|
||||
alos
|
||||
__init__.py
|
||||
ALOS.py
|
||||
ALOS2.py
|
||||
ALOS_SLC.py
|
||||
CEOS.py
|
||||
COSMO_SkyMed.py
|
||||
COSMO_SkyMed_SLC.py
|
||||
ERS.py
|
||||
ERS_EnviSAT.py
|
||||
ERS_EnviSAT_SLC.py
|
||||
ERS_SLC.py
|
||||
EnviSAT.py
|
||||
EnviSAT_SLC.py
|
||||
Generic.py
|
||||
ICEYE_SLC.py
|
||||
JERS.py
|
||||
KOMPSAT5.py
|
||||
Polarimetry.py
|
||||
ROI_PAC.py
|
||||
Radarsat1.py
|
||||
Radarsat2.py
|
||||
Risat1.py
|
||||
Risat1_SLC.py
|
||||
SICD_RGZERO.py
|
||||
Sensor.py
|
||||
Sentinel1.py
|
||||
TanDEMX.py
|
||||
TerraSARX.py
|
||||
UAVSAR_HDF5_SLC.py
|
||||
UAVSAR_Polsar.py
|
||||
UAVSAR_RPI.py
|
||||
UAVSAR_Stack.py
|
||||
)
|
||||
|
||||
if(HDF5_FOUND)
|
||||
Python_add_library(csk MODULE
|
||||
src/extract_csk/extract_csk.c
|
||||
src/extract_csk/extract_csk_slc.c
|
||||
)
|
||||
target_include_directories(csk PUBLIC include)
|
||||
target_link_libraries(csk PUBLIC HDF5::HDF5)
|
||||
list(APPEND installfiles csk)
|
||||
endif()
|
||||
|
||||
Python_add_library(alos MODULE
|
||||
bindings/alosmodule.cpp
|
||||
src/ALOS_pre_process/SConscript
|
||||
src/ALOS_pre_process/lib_functions.h
|
||||
src/ALOS_pre_process/read_ALOSE_data.c
|
||||
src/ALOS_pre_process/siocomplex.h
|
||||
src/ALOS_pre_process/utils.c
|
||||
src/ALOS_pre_process/ALOSE_orbits_utils.c
|
||||
src/ALOS_pre_process/ALOS_ldr_orbit.c
|
||||
src/ALOS_pre_process/ALOS_pre_process.c
|
||||
src/ALOS_pre_process/calc_dop.c
|
||||
src/ALOS_pre_process/data_ALOS.h
|
||||
src/ALOS_pre_process/data_ALOSE.h
|
||||
src/ALOS_pre_process/hermite_c.c
|
||||
src/ALOS_pre_process/image_sio.h
|
||||
src/ALOS_pre_process/init_from_PRM.c
|
||||
src/ALOS_pre_process/interpolate_ALOS_orbit.c
|
||||
src/ALOS_pre_process/null_sio_struct.c
|
||||
src/ALOS_pre_process/orbit_ALOS.h
|
||||
src/ALOS_pre_process/parse_ALOS_commands.c
|
||||
src/ALOS_pre_process/polyfit.c
|
||||
src/ALOS_pre_process/readOrbitPulseSetState.f
|
||||
src/ALOS_pre_process/readOrbitPulseState.f
|
||||
src/ALOS_pre_process/read_ALOS_data.c
|
||||
src/ALOS_pre_process/read_ALOS_sarleader.c
|
||||
src/ALOS_pre_process/roi_utils.c
|
||||
src/ALOS_pre_process/sarleader_ALOS.h
|
||||
src/ALOS_pre_process/sarleader_fdr.h
|
||||
src/ALOS_pre_process/set_ALOS_defaults.c
|
||||
src/ALOS_pre_process/siocomplex.c
|
||||
src/ALOS_pre_process/swap_ALOS_data_info.c
|
||||
src/ALOS_pre_process/write_ALOS_prm.c
|
||||
src/ALOS_pre_process/readOrbitPulse.f
|
||||
)
|
||||
target_include_directories(alos PUBLIC
|
||||
include
|
||||
src/ALOS_pre_process
|
||||
)
|
||||
target_link_libraries(alos PUBLIC DataAccessor_static)
|
||||
|
||||
InstallSameDir(${installfiles})
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
BurstSLC.py
|
||||
Sentinel1.py
|
||||
TOPSSLCProduct.py
|
||||
TOPSSwathSLCProduct.py
|
||||
)
|
||||
|
|
@ -0,0 +1 @@
|
|||
add_subdirectory(alos)
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
InstallSameDir(
|
||||
attitude_record.xml
|
||||
calibration_record.xml
|
||||
data_quality_summary_record.xml
|
||||
facility_record.xml
|
||||
file_pointer_record.xml
|
||||
image_file.xml
|
||||
image_record.xml
|
||||
leader_file.xml
|
||||
map_proj_record.xml
|
||||
platform_position_record.xml
|
||||
processed_data_record.xml
|
||||
radiometric_record.xml
|
||||
scene_record.xml
|
||||
text_record.xml
|
||||
trailer_file.xml
|
||||
volume_descriptor.xml
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Stack.py
|
||||
)
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
createDem.py
|
||||
extractInfo.py
|
||||
Factories.py
|
||||
runCoherence.py
|
||||
runCrop.py
|
||||
runDenseOffsets.py
|
||||
runDispersive.py
|
||||
runFilter.py
|
||||
runGeo2rdr.py
|
||||
runGeocode.py
|
||||
runInterferogram.py
|
||||
runPreprocessor.py
|
||||
runRefineSlaveTiming.py
|
||||
runResampleSlc.py
|
||||
runResampleSubbandSlc.py
|
||||
runROI.py
|
||||
runRubbersheetAzimuth.py
|
||||
runRubbersheet.py
|
||||
runRubbersheetRange.py
|
||||
runSplitSpectrum.py
|
||||
runTopo.py
|
||||
runUnwrapGrass.py
|
||||
runUnwrapIcu.py
|
||||
runUnwrapSnaphu.py
|
||||
runVerifyDEM.py
|
||||
Sensor.py
|
||||
__StripmapProc.py
|
||||
StripmapProc.py
|
||||
)
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Factories.py
|
||||
runBurstIfg.py
|
||||
runCoarseOffsets.py
|
||||
runCoarseResamp.py
|
||||
runComputeBaseline.py
|
||||
runCropOffsetGeo.py
|
||||
runDenseOffsets.py
|
||||
run_downsample_unwrapper.py
|
||||
runESD.py
|
||||
runFilter.py
|
||||
runFineOffsets.py
|
||||
runFineResamp.py
|
||||
runGeocode.py
|
||||
runIon.py
|
||||
runMergeBursts.py
|
||||
runMergeSLCs.py
|
||||
runOffsetFilter.py
|
||||
runOffsetGeocode.py
|
||||
runOverlapIfg.py
|
||||
runPrepESD.py
|
||||
runPreprocessor.py
|
||||
runRangeCoreg.py
|
||||
runSubsetOverlaps.py
|
||||
runTopo.py
|
||||
runUnwrap2Stage.py
|
||||
runUnwrapGrass.py
|
||||
runUnwrapIcu.py
|
||||
runUnwrapSnaphu.py
|
||||
runVerifyDEM.py
|
||||
runVerifyGeocodeDEM.py
|
||||
TopsProc.py
|
||||
VRTManager.py
|
||||
)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
grass.py
|
||||
icu.py
|
||||
snaphu.py
|
||||
snaphu_mcf.py
|
||||
)
|
||||
|
|
@ -0,0 +1,144 @@
|
|||
add_subdirectory(ImageUtil)
|
||||
add_subdirectory(geo)
|
||||
|
||||
Python_add_library(offoutliers MODULE
|
||||
offoutliers/bindings/offoutliersmodule.cpp
|
||||
offoutliers/src/offoutliers.F
|
||||
offoutliers/src/offoutliersAllocateDeallocate.F
|
||||
offoutliers/src/offoutliersGetState.F
|
||||
offoutliers/src/offoutliersSetState.F
|
||||
offoutliers/src/offoutliersState.F
|
||||
)
|
||||
target_include_directories(offoutliers PUBLIC offoutliers/include)
|
||||
target_link_libraries(offoutliers PUBLIC
|
||||
stdoel_static
|
||||
)
|
||||
|
||||
add_definitions(-DHAVE_CONFIG_H -DHAVE_FFTW=1)
|
||||
|
||||
add_library(utilLib SHARED
|
||||
src/akima_reg.F
|
||||
src/args_roi.F
|
||||
src/besseldiffs.F
|
||||
src/bilinear.F
|
||||
src/cfft1d_jpl.F
|
||||
src/cfft2d.F
|
||||
src/cffts.F
|
||||
src/config.h
|
||||
src/convert_schdot_to_xyzdot.F
|
||||
src/convert_sch_to_xyz.F
|
||||
src/cross.F
|
||||
src/curvature.F
|
||||
src/derampc.F
|
||||
src/dop.F
|
||||
src/dot.F
|
||||
src/enubasis.F
|
||||
src/fc.F
|
||||
src/fc.f.org
|
||||
src/fftw3stub.c
|
||||
src/fftw3stub.cc
|
||||
src/fortranUtils.f90
|
||||
src/fourn.F
|
||||
src/fournnr.F
|
||||
src/getangs.F
|
||||
src/gettcn_tcvec.F
|
||||
src/hunt.F
|
||||
src/inter_motion.F
|
||||
src/interp.F
|
||||
src/intp_coef.f90
|
||||
src/intpcoefnorm.F
|
||||
src/io.c
|
||||
src/latlon.F
|
||||
src/latlon_nostruct.F
|
||||
#src/lfit.F
|
||||
src/linalg.f90
|
||||
src/lincomb.F
|
||||
src/lookvec.F
|
||||
src/lsq.f90
|
||||
src/matmat.F
|
||||
src/matvec.F
|
||||
src/norm.F
|
||||
src/orrmread1.F
|
||||
src/polint.F
|
||||
src/PowerOfTwo.cc
|
||||
src/quadfit.f90
|
||||
src/radar_to_xyz.F
|
||||
src/rdf_common.inc
|
||||
src/roi_exit.cc
|
||||
src/schbasis.F
|
||||
src/second.c
|
||||
src/sfftw_import.c
|
||||
src/spline.f
|
||||
#src/svd.F
|
||||
#src/svdvecfit9.F
|
||||
#src/svdvecfit.F
|
||||
src/tranmat.F
|
||||
src/uniform_interp.f90
|
||||
src/unitvec.F
|
||||
src/utmtoll.F
|
||||
src/zbrent.F
|
||||
)
|
||||
target_include_directories(utilLib PUBLIC
|
||||
include
|
||||
)
|
||||
target_link_libraries(utilLib PUBLIC
|
||||
FFTW::Float
|
||||
)
|
||||
# TODO (fortran module include)
|
||||
# This seems to be needed to use this library's modules,
|
||||
# but is there a more idiomatic way to do this?
|
||||
target_include_directories(utilLib INTERFACE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
add_library(combinedLib SHARED
|
||||
Library/geometry/src/geometryModule.F
|
||||
Library/linalg3/src/linalg3Module.F
|
||||
Library/linalg3/src/linalg3.c
|
||||
Library/orbit/src/orbit.c
|
||||
Library/orbit/src/orbitModule.F
|
||||
Library/orbit/src/orbitHermite.c
|
||||
Library/poly1d/src/poly1d.c
|
||||
Library/poly1d/src/poly1dModule.F
|
||||
Library/poly2d/src/poly2d.c
|
||||
Library/poly2d/src/poly2dModule.F
|
||||
)
|
||||
target_include_directories(combinedLib PUBLIC
|
||||
Library/geometry/include
|
||||
Library/linalg3/include
|
||||
Library/orbit/include
|
||||
Library/poly1d/include
|
||||
Library/poly2d/include
|
||||
)
|
||||
|
||||
Python_add_library(combinedlibmodule MODULE
|
||||
Library/bindings/combinedlibmodule.cpp
|
||||
)
|
||||
target_include_directories(combinedlibmodule PUBLIC
|
||||
Library/include
|
||||
)
|
||||
target_link_libraries(combinedlibmodule PUBLIC
|
||||
combinedLib
|
||||
)
|
||||
# TODO (fortran module include)
|
||||
# This seems to be needed to use this library's modules,
|
||||
# but is there a more idiomatic way to do this?
|
||||
target_include_directories(combinedLib INTERFACE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
utilLib
|
||||
combinedLib
|
||||
combinedlibmodule
|
||||
offoutliers
|
||||
__init__.py
|
||||
decorators.py
|
||||
mathModule.py
|
||||
offoutliers/Offoutliers.py
|
||||
StringUtils.py
|
||||
Library/python/Poly1D.py
|
||||
Library/python/Poly2D.py
|
||||
Library/python/PolyFactory.py
|
||||
Library/python/Polynomial.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
DemImageLib.py
|
||||
ImageLib.py
|
||||
)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
affine.py
|
||||
charts.py
|
||||
coordinates.py
|
||||
dxdt.py
|
||||
ellipsoid.py
|
||||
euclid.py
|
||||
exceptions.py
|
||||
motion.py
|
||||
trig.py
|
||||
)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
add_subdirectory(test)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
FastXML.py
|
||||
XmlUtil.py
|
||||
test/testXmlUtilPy.py
|
||||
xmlUtils.py
|
||||
)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
add_python_test(testXmlUtilPy.py)
|
||||
|
||||
foreach(xml
|
||||
test1.xml
|
||||
)
|
||||
|
||||
configure_file(${xml} ${xml})
|
||||
endforeach()
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
add_subdirectory(Compatibility)
|
||||
add_subdirectory(Component)
|
||||
add_subdirectory(DataManager)
|
||||
add_subdirectory(DataRetriever)
|
||||
add_subdirectory(DateTimeUtil)
|
||||
add_subdirectory(DebugLiner)
|
||||
add_subdirectory(DictUtils)
|
||||
add_subdirectory(Display)
|
||||
add_subdirectory(Dumpers)
|
||||
add_subdirectory(ImageApi)
|
||||
add_subdirectory(ImageUtil)
|
||||
add_subdirectory(Parsers)
|
||||
add_subdirectory(StdOE)
|
||||
add_subdirectory(StdOEL)
|
||||
add_subdirectory(Stitcher)
|
||||
add_subdirectory(Traits)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
Compatibility.py
|
||||
__init__.py
|
||||
)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Application.py
|
||||
Component.py
|
||||
Configurable.py
|
||||
FactoryInit.py
|
||||
InitFromDictionary.py
|
||||
InitFromFile.py
|
||||
InitFromObject.py
|
||||
InitFromXmlFile.py
|
||||
manager.py
|
||||
ProductManager.py
|
||||
TraitSeq.py
|
||||
)
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Dem1Manager.py
|
||||
Dem3Manager.py
|
||||
SRTMManager.py
|
||||
SWBDManager.py
|
||||
TileManager.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
DataRetriever.py
|
||||
gzipfile.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
DateTimeUtil.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
DebugLiner.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
DictUtils.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Display.py
|
||||
GracePlot.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
DumperFactory.py
|
||||
XmlDumper.py
|
||||
)
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
# TODO (subdir-staticlib)
|
||||
# This library is in a subdirectory but used by other libraries,
|
||||
# so it's compiled as a static library so we don't need to worry
|
||||
# about RPATH. Is there a better way to this?
|
||||
add_library(DataAccessor_static STATIC
|
||||
DataAccessor/src/DataAccessorCaster.cpp
|
||||
DataAccessor/src/DataAccessor.cpp
|
||||
DataAccessor/src/DataAccessorF.cpp
|
||||
DataAccessor/src/DataAccessorNoCaster.cpp
|
||||
Factories/src/AccessorFactory.cpp
|
||||
Factories/src/CasterFactory.cpp
|
||||
Factories/src/InterleavedFactory.cpp
|
||||
InterleavedAccessor/src/BILAccessor.cpp
|
||||
InterleavedAccessor/src/BIPAccessor.cpp
|
||||
InterleavedAccessor/src/BSQAccessor.cpp
|
||||
InterleavedAccessor/src/InterleavedAccessor.cpp
|
||||
InterleavedAccessor/src/InterleavedBase.cpp
|
||||
InterleavedAccessor/src/Poly1dInterpolator.cpp
|
||||
InterleavedAccessor/src/Poly2dInterpolator.cpp
|
||||
)
|
||||
|
||||
set_property(TARGET DataAccessor_static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
target_include_directories(DataAccessor_static PUBLIC
|
||||
DataAccessor/include
|
||||
DataCaster/include
|
||||
Factories/include
|
||||
InterleavedAccessor/include
|
||||
)
|
||||
target_link_libraries(DataAccessor_static PUBLIC
|
||||
combinedLib
|
||||
)
|
||||
|
||||
if(TARGET GDAL::GDAL)
|
||||
target_sources(DataAccessor_static PRIVATE
|
||||
InterleavedAccessor/src/GDALAccessor.cpp
|
||||
)
|
||||
target_link_libraries(DataAccessor_static PUBLIC
|
||||
GDAL::GDAL
|
||||
)
|
||||
else()
|
||||
target_compile_definitions(DataAccessor_static PRIVATE -DHAVE_GDAL=0)
|
||||
endif()
|
||||
|
||||
Python_add_library(DataAccessor MODULE
|
||||
DataAccessor/bindings/DataAccessormodule.cpp
|
||||
)
|
||||
target_link_libraries(DataAccessor PRIVATE DataAccessor_static)
|
||||
|
||||
InstallSameDir(
|
||||
Factories/CasterFactory.py
|
||||
DataAccessor/DataAccessorPy.py
|
||||
DataAccessor
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
ImageUtil.py
|
||||
)
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
add_subdirectory(rdf)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
FileParserFactory.py
|
||||
Parser.py
|
||||
RscParser.py
|
||||
XmlParser.py
|
||||
)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
add_subdirectory(data)
|
||||
add_subdirectory(language)
|
||||
add_subdirectory(reserved)
|
||||
add_subdirectory(units)
|
||||
|
||||
InstallSameDir(
|
||||
__init__.py
|
||||
eRDF.py
|
||||
iRDF.py
|
||||
parse.py
|
||||
read.py
|
||||
uRDF.py
|
||||
utils.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
entries.py
|
||||
files.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
errors.py
|
||||
)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
morpheme.py
|
||||
punctuation.py
|
||||
syntax.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
pragmatics.py
|
||||
semantics.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
glyphs.py
|
||||
words.py
|
||||
)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
addendum.py
|
||||
physical_quantity.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
StdOEPy.py
|
||||
)
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
add_library(stdoel_static STATIC
|
||||
src/ScreenWriter.cpp
|
||||
src/StdOELF.cpp
|
||||
src/FileWriter.cpp
|
||||
src/StdOEL.cpp
|
||||
src/WriterFactory.cpp
|
||||
)
|
||||
target_include_directories(stdoel_static PUBLIC include)
|
||||
|
||||
Python_add_library(StdOEL MODULE
|
||||
bindings/StdOELmodule.cpp
|
||||
)
|
||||
target_link_libraries(StdOEL PUBLIC stdoel_static)
|
||||
|
||||
InstallSameDir(
|
||||
StdOEL
|
||||
__init__.py
|
||||
StdOELPy.py
|
||||
)
|
||||
|
||||
add_executable(testStdOEL test/testStdOEL.cpp
|
||||
src/ScreenWriter.cpp
|
||||
src/StdOELF.cpp
|
||||
src/FileWriter.cpp
|
||||
src/StdOEL.cpp
|
||||
src/WriterFactory.cpp
|
||||
)
|
||||
target_include_directories(testStdOEL PUBLIC include)
|
||||
add_exe_test(testStdOEL)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Stitcher.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Datetime.py
|
||||
)
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
add_subdirectory(aikima)
|
||||
add_subdirectory(ampcor)
|
||||
add_subdirectory(baseline)
|
||||
add_subdirectory(correlation)
|
||||
add_subdirectory(dopav)
|
||||
add_subdirectory(dopiq)
|
||||
add_subdirectory(doppler)
|
||||
add_subdirectory(filter)
|
||||
add_subdirectory(fitoff)
|
||||
add_subdirectory(formimage)
|
||||
add_subdirectory(getPegInfo)
|
||||
add_subdirectory(geolocate)
|
||||
add_subdirectory(grass)
|
||||
add_subdirectory(icu)
|
||||
add_subdirectory(looks)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
Python_add_library(aikima MODULE
|
||||
bindings/aikimamodule.cpp
|
||||
src/aikima.f90
|
||||
src/aikimaLib.F
|
||||
src/aikimaSetState.F
|
||||
src/aikimaState.F
|
||||
)
|
||||
target_include_directories(aikima PUBLIC include)
|
||||
target_link_libraries(aikima PUBLIC
|
||||
DataAccessor_static
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
aikima
|
||||
__init__.py
|
||||
Aikima.py
|
||||
)
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
Python_add_library(ampcor MODULE
|
||||
bindings/ampcormodule.cpp
|
||||
src/ampcor.F
|
||||
src/ampcorAllocateDeallocate.F
|
||||
src/ampcorGetState.F
|
||||
src/ampcorPrintState.F
|
||||
src/ampcorSetState.F
|
||||
src/ampcorState.F
|
||||
)
|
||||
target_include_directories(ampcor PUBLIC include)
|
||||
target_link_libraries(ampcor PUBLIC
|
||||
utilLib
|
||||
DataAccessor_static
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
ampcor
|
||||
__init__.py
|
||||
Ampcor.py
|
||||
DenseAmpcor.py
|
||||
NStage.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Baseline.py
|
||||
)
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Python_add_library(correlationlib MODULE
|
||||
bindings/correlationmodule.cpp
|
||||
src/cchz_wave.cpp
|
||||
src/magnitude_threshold.c
|
||||
)
|
||||
target_include_directories(correlationlib PUBLIC include)
|
||||
target_link_libraries(correlationlib PRIVATE
|
||||
DataAccessor_static
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
correlationlib
|
||||
__init__.py
|
||||
correlation.py
|
||||
)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
Dopav.py
|
||||
)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
Python_add_library(dopiq MODULE
|
||||
bindings/dopiqmodule.cpp
|
||||
src/dopiq-new.f
|
||||
src/dopiqAllocateDeallocate.f
|
||||
src/dopiqGetState.f
|
||||
src/dopiqSetState.f
|
||||
src/dopiqState.f
|
||||
)
|
||||
target_include_directories(dopiq PUBLIC include)
|
||||
target_link_libraries(dopiq PUBLIC DataAccessor_static)
|
||||
|
||||
InstallSameDir(
|
||||
dopiq
|
||||
__init__.py
|
||||
DopIQ.py
|
||||
)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
Python_add_library(doppler MODULE
|
||||
bindings/dopplermodule.cpp
|
||||
src/doppler.f
|
||||
src/dopplerAllocateDeallocate.f
|
||||
src/dopplerGetState.f
|
||||
src/dopplerSetState.f
|
||||
src/dopplerState.f
|
||||
)
|
||||
target_include_directories(doppler PUBLIC include)
|
||||
target_link_libraries(doppler PUBLIC DataAccessor_static)
|
||||
|
||||
InstallSameDir(
|
||||
doppler
|
||||
__init__.py
|
||||
Doppler.py
|
||||
)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Python_add_library(libfilter MODULE
|
||||
src/rescale_magnitude.c
|
||||
src/psfilt.c
|
||||
src/timing.c
|
||||
)
|
||||
target_include_directories(libfilter PUBLIC include)
|
||||
|
||||
InstallSameDir(
|
||||
libfilter
|
||||
__init__.py
|
||||
Filter.py
|
||||
)
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
Python_add_library(fitoff MODULE
|
||||
bindings/fitoffmodule.cpp
|
||||
src/fitoffGetState.F
|
||||
src/fitoffAllocateDeallocate.F
|
||||
src/fitoffSetState.F
|
||||
src/fitoff.F
|
||||
src/fitoffState.F
|
||||
)
|
||||
target_include_directories(fitoff PUBLIC include)
|
||||
target_link_libraries(fitoff PUBLIC
|
||||
combinedLib
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
fitoff
|
||||
__init__.py
|
||||
Fitoff.py
|
||||
)
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
Python_add_library(formslc MODULE
|
||||
formslc/bindings/formslcmodule.cpp
|
||||
formslc/src/formslc.F
|
||||
formslc/src/formslcGetState.F
|
||||
formslc/src/formslcSetState.F
|
||||
formslc/src/formslcState.F
|
||||
src/acpatch.F
|
||||
src/intp_coef.F
|
||||
src/rcpatch.F
|
||||
src/rmpatch.F
|
||||
)
|
||||
target_include_directories(formslc PUBLIC
|
||||
formslc/include
|
||||
)
|
||||
target_link_libraries(formslc PRIVATE
|
||||
# XXX Careful!
|
||||
# Both of these libs define getline_ and
|
||||
# we need to use the one from DataAccessor.
|
||||
# So make sure that DataAccessor is linked first here!
|
||||
# Linking the wrong getline may cause confusing segfaults!
|
||||
DataAccessor_static
|
||||
# TODO remove these includes from formslc - they are not needed
|
||||
LineAccessor_static
|
||||
)
|
||||
|
||||
target_link_libraries(formslc PUBLIC
|
||||
utilLib
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
formslc
|
||||
formslc/__init__.py
|
||||
formslc/FormSLC.py
|
||||
)
|
||||
|
||||
set(tests
|
||||
formslc/test/driverFormslc.py
|
||||
formslc/test/testFormslcPy.py
|
||||
formslc/test/Platform930110.xml
|
||||
formslc/test/SlcImage930110.xml
|
||||
formslc/test/platform950523Init.ini
|
||||
formslc/test/DriverFormSLC.xml
|
||||
formslc/test/DriverFormSLCXXX.xml
|
||||
formslc/test/Radar930110.xml
|
||||
formslc/test/RawImage930110.xml
|
||||
formslc/test/SlcImage930110New.xml
|
||||
formslc/test/exampleCommandLine
|
||||
formslc/test/formslcInit.ini
|
||||
formslc/test/platform930110Init.ini
|
||||
)
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
add_python_test(driverFormslc.py)
|
||||
add_python_test(testFormslcPy.py)
|
||||
configure_file(
|
||||
FormSCL930110.xml
|
||||
FormSCL930110.xml
|
||||
COPYONLY
|
||||
)
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
Python_add_library(libgeolocate MODULE
|
||||
src/geolocate_wrapper.c
|
||||
src/geolocate.f
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
libgeolocate
|
||||
__init__.py
|
||||
Geolocate.py
|
||||
)
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
Python_add_library(get_peg_info MODULE
|
||||
bindings/get_peg_infomodule.cpp
|
||||
src/get_peg_info.F
|
||||
src/get_peg_infoSetState.F
|
||||
src/get_peg_infoAllocateDeallocate.F
|
||||
src/get_peg_infoGetState.F
|
||||
src/get_peg_infoState.F
|
||||
)
|
||||
target_include_directories(get_peg_info PUBLIC include)
|
||||
|
||||
InstallSameDir(
|
||||
get_peg_info
|
||||
__init__.py
|
||||
Get_peg_info.py
|
||||
)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Python_add_library(libgrass MODULE
|
||||
src/corr_flag.c
|
||||
src/grass.c
|
||||
src/trees.c
|
||||
src/residue.c
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
libgrass
|
||||
__init__.py
|
||||
grass.py
|
||||
)
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
Python_add_library(icu MODULE
|
||||
bindings/icumodule.cpp
|
||||
src/grass.F
|
||||
src/icu.F
|
||||
src/icuState.F
|
||||
src/residues.F
|
||||
src/rt.F
|
||||
src/unw_rt.F
|
||||
src/SConscript
|
||||
src/abs_phase.F
|
||||
src/bermuda.F
|
||||
src/gen_neutrons.F
|
||||
src/icuSetState.F
|
||||
src/intf_cc.F
|
||||
src/intf_filt.F
|
||||
src/lowpass.F
|
||||
src/norm_cor.F
|
||||
src/ph_sigma.F
|
||||
src/ph_slope.F
|
||||
src/psfilt_sub.F
|
||||
src/std_cor.F
|
||||
)
|
||||
target_include_directories(icu PUBLIC include)
|
||||
target_link_libraries(icu PUBLIC
|
||||
DataAccessor_static
|
||||
utilLib
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
icu
|
||||
__init__.py
|
||||
Icu.py
|
||||
)
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
Python_add_library(looks MODULE
|
||||
bindings/looksmodule.cpp
|
||||
)
|
||||
target_include_directories(looks PUBLIC include)
|
||||
target_link_libraries(looks PRIVATE
|
||||
DataAccessor_static
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
looks
|
||||
__init__.py
|
||||
Cpxlooks.py
|
||||
Looks.py
|
||||
Nbymdem.py
|
||||
Nbymhgt.py
|
||||
Powlooks.py
|
||||
Rilooks.py
|
||||
)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
add_subdirectory(alosreformat)
|
||||
add_subdirectory(orbit)
|
||||
add_subdirectory(rectify)
|
||||
add_subdirectory(stdproc)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
Python_add_library(ALOS_fbd2fbs MODULE
|
||||
bindings/ALOS_fbd2fbsmodule.c
|
||||
)
|
||||
target_include_directories(ALOS_fbd2fbs PUBLIC include)
|
||||
target_link_libraries(ALOS_fbd2fbs PUBLIC
|
||||
alos_lib
|
||||
utilLib
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
ALOS_fbd2fbs
|
||||
__init__.py
|
||||
ALOS_fbd2fbsPy.py
|
||||
)
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
Python_add_library(ALOS_fbs2fbd MODULE
|
||||
bindings/ALOS_fbs2fbdmodule.c
|
||||
)
|
||||
target_include_directories(ALOS_fbs2fbd PUBLIC include)
|
||||
target_link_libraries(ALOS_fbs2fbd PUBLIC
|
||||
alos_lib
|
||||
utilLib
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
ALOS_fbs2fbd
|
||||
__init__.py
|
||||
ALOS_fbs2fbdPy.py
|
||||
)
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
add_library(alos_lib STATIC
|
||||
ALOS_lib/src/cfft1d.c
|
||||
ALOS_lib/src/find_fft_length.c
|
||||
ALOS_lib/src/utils.c
|
||||
ALOS_lib/src/ALOS_ldr_orbit.c
|
||||
ALOS_lib/src/SConscript
|
||||
ALOS_lib/src/calc_dop.c
|
||||
ALOS_lib/src/cfft1d_fftpack.c
|
||||
ALOS_lib/src/fftpack.c
|
||||
ALOS_lib/src/get_sio_struct.c
|
||||
ALOS_lib/src/hermite_c.c
|
||||
ALOS_lib/src/interpolate_ALOS_orbit.c
|
||||
ALOS_lib/src/null_sio_struct.c
|
||||
ALOS_lib/src/read_ALOS_sarleader.c
|
||||
ALOS_lib/src/rng_compress.c
|
||||
)
|
||||
target_include_directories(alos_lib PUBLIC include)
|
||||
set_property(TARGET alos_lib PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
add_subdirectory(ALOS_fbd2fbs)
|
||||
add_subdirectory(ALOS_fbs2fbd)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
InstallSameDir(
|
||||
__init__.py
|
||||
pegManipulator.py
|
||||
)
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
add_subdirectory(geocode)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
Python_add_library(geocode MODULE
|
||||
bindings/geocodemodule.cpp
|
||||
src/coordinates.f90
|
||||
src/geocode.f90
|
||||
src/geocodeAllocateDeallocate.F
|
||||
src/geocodeGetState.F
|
||||
src/geocodeMethods.F
|
||||
src/geocodeReadWrite.F
|
||||
src/geocodeSetState.F
|
||||
src/geocodeState.F
|
||||
)
|
||||
target_include_directories(geocode PUBLIC include)
|
||||
target_link_libraries(geocode PUBLIC
|
||||
DataAccessor_static
|
||||
OpenMP::OpenMP_CXX
|
||||
stdoel_static
|
||||
combinedLib
|
||||
utilLib
|
||||
)
|
||||
|
||||
InstallSameDir(
|
||||
geocode
|
||||
__init__.py
|
||||
Geocode.py
|
||||
Geocodable.py
|
||||
)
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
# TODO (subdir-staticlib)
|
||||
# This library is in a subdirectory but used by other libraries,
|
||||
# so it's compiled as a static library so we don't need to worry
|
||||
# about RPATH. Is there a better way to this?
|
||||
add_library(formslcLib SHARED
|
||||
formslcLib/src/arraymodule.f90
|
||||
formslcLib/src/get_frate.f90
|
||||
formslcLib/src/io.c
|
||||
)
|
||||
set_property(TARGET formslcLib PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||
target_include_directories(formslcLib PRIVATE formslcLib/include)
|
||||
target_link_libraries(formslcLib PUBLIC
|
||||
utilLib
|
||||
)
|
||||
# TODO (fortran module include)
|
||||
# This seems to be needed to use this library's modules,
|
||||
# but is there a more idiomatic way to do this?
|
||||
target_include_directories(formslcLib INTERFACE
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
|
||||
add_subdirectory(correct)
|
||||
add_subdirectory(crossmul)
|
||||
add_subdirectory(estamb)
|
||||
add_subdirectory(formslc)
|
||||
add_subdirectory(mocompTSX)
|
||||
add_subdirectory(offsetpoly)
|
||||
add_subdirectory(resamp)
|
||||
add_subdirectory(resamp_amps)
|
||||
add_subdirectory(resamp_image)
|
||||
add_subdirectory(resamp_only)
|
||||
add_subdirectory(resamp_slc)
|
||||
add_subdirectory(topo)
|
||||
|
||||
InstallSameDir(__init__.py)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Python_add_library(correct MODULE
|
||||
bindings/correctmodule.cpp
|
||||
src/correctAllocateDeallocate.f
|
||||
src/correctSetState.f
|
||||
src/correctState.f
|
||||
)
|
||||
target_include_directories(correct PUBLIC include)
|
||||
|
||||
InstallSameDir(
|
||||
correct
|
||||
__init__.py
|
||||
Correct.py
|
||||
)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
Python_add_library(crossmul MODULE
|
||||
bindings/crossmulmodule.cpp
|
||||
src/crossmulState.F
|
||||
src/crossmul.f90
|
||||
)
|
||||
target_include_directories(crossmul PUBLIC include)
|
||||
|
||||
InstallSameDir(
|
||||
crossmul
|
||||
__init__.py
|
||||
Crossmul.py
|
||||
)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue