Merge pull request #89 from rtburns-jpl/cmake

Add CMake build system
LT1AB
Ryan Burns 2020-05-08 12:42:01 -07:00 committed by GitHub
commit e68db01bf9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
149 changed files with 2564 additions and 1 deletions

View File

@ -1,5 +1,59 @@
version: 2.1
jobs:
test-cmake:
docker:
- image: hysds/pge-base:latest
user: root
steps:
- checkout:
path: /root/project/src
- run:
name: Install development tools
command: |
set -ex
pwd
yum update -y
yum groupinstall -y "development tools"
- run:
name: Install ISCE requirements
command: |
set -ex
pwd
mkdir config build install
. /opt/conda/bin/activate root
conda install -y cython gdal h5py libgdal pytest numpy fftw scipy basemap scons opencv hdf4 hdf5 netcdf4 libgcc libstdcxx-ng cmake astropy
yum install -y x11-devel motif-devel jq gcc-gfortran
- run:
name: Build and Install ISCE
command: |
set -ex
cd /root/project/src
. /opt/conda/bin/activate root
mkdir build
cd build
INSTALLPATH=/opt/conda
MODPATH=$(python3 -c "import site; print(site.getsitepackages()[0])")
# convert to relative path
MODPATH=$(realpath --relative-to=$INSTALLPATH $MODPATH)
cmake .. -DCMAKE_INSTALL_PREFIX=$INSTALLPATH -DPYTHON_MODULE_DIR=$MODPATH
make install VERBOSE=y
- run:
name: Test ISCE installation
command: |
set -ex
cd /root/project/src/build
. /opt/conda/bin/activate root
ctest
ISCE2DIR=$(python3 -c "import os, isce2; print(os.path.dirname(isce2.__file__))" | tail -n 1)
export PATH=$ISCE2DIR/applications:$PATH
topsApp.py --help --steps
stripmapApp.py --help --steps
python3 -c "import isce"
test:
docker:
- image: hysds/pge-base:latest
@ -186,6 +240,7 @@ workflows:
test:
jobs:
- test
- test-cmake
build-deploy:
jobs:
- build:

14
.cmake/FindCython.cmake Normal file
View File

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

169
.cmake/FindFFTW.cmake Normal file
View File

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

9
.cmake/TargetGDAL.cmake Normal file
View File

@ -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()

9
.cmake/TargetMotif.cmake Normal file
View File

@ -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()

27
.cmake/TargetX11.cmake Normal file
View File

@ -0,0 +1,27 @@
set(components
Xau
Xt
)
find_package(X11 COMPONENTS ${components})
if(X11_FOUND)
# make X11 look like a regular find_package component
set(X11_X11_FOUND TRUE)
set(X11_X11_INCLUDE_PATH ${X11_INCLUDE_DIR})
list(APPEND components X11)
foreach(component ${components})
message("${component} include = ${X11_${component}_INCLUDE_PATH}")
if(X11_${component}_FOUND)
if(NOT TARGET X11::${component})
add_library(X11::${component} IMPORTED INTERFACE)
endif()
target_link_libraries(X11::${component}
INTERFACE ${X11_${component}_LIB})
target_include_directories(X11::${component} SYSTEM
INTERFACE ${X11_${component}_INCLUDE_PATH})
endif()
endforeach()
endif()

142
.cmake/UseCython.cmake Normal file
View File

@ -0,0 +1,142 @@
# 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}")
# 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()

View File

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

View File

@ -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")

58
CMakeLists.txt Normal file
View File

@ -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 REQUIRED COMPONENTS C CXX Fortran)
# 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})")

View File

@ -0,0 +1,42 @@
set(files
__init__.py
alos2App.py
alos2burstApp.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
rtcApp.py
stitcher.py
stripmapApp.py
topsApp.py
upsampleDem.py
waterMask.py
wbd.py
wbdStitcher.py
)
install(PROGRAMS ${files}
DESTINATION ${ISCE2_PKG}/applications)
# Symlink apps into PREFIX/bin so they are on the $PATH
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory \
${CMAKE_INSTALL_PREFIX}/bin)"
)
foreach(file ${files})
install(CODE "execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink \
${CMAKE_INSTALL_PREFIX}/${ISCE2_PKG}/applications/${file} \
${CMAKE_INSTALL_PREFIX}/bin/${file})"
)
endforeach()

View File

@ -0,0 +1,7 @@
add_subdirectory(isceobj)
add_subdirectory(iscesys)
add_subdirectory(mroipac)
add_subdirectory(stdproc)
add_subdirectory(zerodop)
InstallSameDir(__init__.py)

View File

@ -0,0 +1,37 @@
InstallSameDir(
__init__.py
Alos2Proc.py
Alos2ProcPublic.py
Factories.py
denseOffsetNote.txt
runCoherence.py
runDenseOffset.py
runDiffInterferogram.py
runDownloadDem.py
runFilt.py
runFiltOffset.py
runFormInterferogram.py
runFrameMosaic.py
runFrameOffset.py
runGeo2Rdr.py
runGeocode.py
runGeocodeOffset.py
runIonFilt.py
runIonSubband.py
runIonUwrap.py
runLook.py
runPrepareSlc.py
runPreprocessor.py
runRdr2Geo.py
runRdrDemOffset.py
runRectRangeOffset.py
runSlcMatch.py
runSlcMosaic.py
runSlcOffset.py
runSwathMosaic.py
runSwathOffset.py
runUnwrapSnaphu.py
srtm_no_swbd_tiles.txt
srtm_tiles.txt
swbd_tiles.txt
)

View File

@ -0,0 +1,19 @@
InstallSameDir(
__init__.py
Factories.py
Alos2burstProc.py
runPreprocessor.py
runExtractBurst.py
runCoregGeom.py
runCoregCc.py
runCoregSd.py
runSwathOffset.py
runSwathMosaic.py
runFrameOffset.py
runFrameMosaic.py
runIonSubband.py
runLookSd.py
runFiltSd.py
runUnwrapSnaphuSd.py
runGeocodeSd.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Attitude.py
)

View File

@ -0,0 +1,31 @@
add_subdirectory(Util)
add_subdirectory(Sensor)
add_subdirectory(Alos2Proc)
add_subdirectory(Alos2burstProc)
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(Scene)
add_subdirectory(Stack)
add_subdirectory(StripmapProc)
add_subdirectory(TopsProc)
add_subdirectory(Unwrap)
add_subdirectory(XmlUtil)
InstallSameDir(__init__.py)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
Catalog.py
OrderedDict.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Constants.py
)

View File

@ -0,0 +1,6 @@
InstallSameDir(
__init__.py
Calc_dop.py
DefaultDopp.py
Doppler.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Filter.py
)

View File

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

View File

@ -0,0 +1,2 @@
# TODO add_python_test(testRawImagePy.py)
# TODO add_python_test(testSlcImagePy.py)

View File

@ -0,0 +1,9 @@
add_subdirectory(test)
InstallSameDir(
__init__.py
BandExtractor.py
ComplexExtractor.py
FilterFactory.py
ImageFilter.py
)

View File

@ -0,0 +1,2 @@
# TODO add_python_test(testFilter.py)
# TODO add_exe_test(test.cpp)

View File

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

View File

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

View File

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

View File

@ -0,0 +1,9 @@
add_subdirectory(test)
InstallSameDir(
__init__.py
Coordinate.py
Offset.py
Peg.py
SCH.py
)

View File

@ -0,0 +1,3 @@
# TODO add_python_test(test_offset.py)
# TODO add_python_test(test_pegfactory.py)
# TODO add_python_test(test_sch.py)

View File

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

View File

@ -0,0 +1 @@
InstallSameDir(__init__.py)

View File

@ -0,0 +1,6 @@
InstallSameDir(
__init__.py
AstronomicalHandbook.py
Ellipsoid.py
Planet.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Platform.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Radar.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Registry.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
BaseRenderer.py
XmlRenderer.py
)

View File

@ -0,0 +1,10 @@
InstallSameDir(
__init__.py
Factories.py
RtcProc.py
runLooks.py
runNormalize.py
runPreprocessor.py
runTopo.py
runVerifyDEM.py
)

View File

@ -0,0 +1,11 @@
add_library(concatenate SHARED
src/frame_concatenate.c
src/swst_resample.c
)
InstallSameDir(
concatenate
__init__.py
Frame.py
Track.py
)

View File

@ -0,0 +1,91 @@
add_subdirectory(db)
add_subdirectory(TOPS)
add_subdirectory(MultiMode)
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})

View File

@ -0,0 +1,7 @@
InstallSameDir(
__init__.py
ALOS2.py
Frame.py
Swath.py
Track.py
)

View File

@ -0,0 +1,7 @@
InstallSameDir(
__init__.py
BurstSLC.py
Sentinel1.py
TOPSSLCProduct.py
TOPSSwathSLCProduct.py
)

View File

@ -0,0 +1 @@
add_subdirectory(alos)

View File

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

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Stack.py
)

View File

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

View File

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

View File

@ -0,0 +1,7 @@
InstallSameDir(
__init__.py
grass.py
icu.py
snaphu.py
snaphu_mcf.py
)

View File

@ -0,0 +1,147 @@
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}
)
install(TARGETS
utilLib
combinedLib
LIBRARY DESTINATION lib)
InstallSameDir(
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
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
DemImageLib.py
ImageLib.py
)

View File

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

View File

@ -0,0 +1,9 @@
add_subdirectory(test)
InstallSameDir(
__init__.py
FastXML.py
XmlUtil.py
test/testXmlUtilPy.py
xmlUtils.py
)

View File

@ -0,0 +1,8 @@
# TODO add_python_test(testXmlUtilPy.py)
foreach(xml
test1.xml
)
configure_file(${xml} ${xml})
endforeach()

View File

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

View File

@ -0,0 +1,4 @@
InstallSameDir(
Compatibility.py
__init__.py
)

View File

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

View File

@ -0,0 +1,8 @@
InstallSameDir(
__init__.py
Dem1Manager.py
Dem3Manager.py
SRTMManager.py
SWBDManager.py
TileManager.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
DataRetriever.py
gzipfile.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
DateTimeUtil.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
DebugLiner.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
DictUtils.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
Display.py
GracePlot.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
DumperFactory.py
XmlDumper.py
)

View File

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

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
ImageUtil.py
)

View File

@ -0,0 +1,9 @@
add_subdirectory(rdf)
InstallSameDir(
__init__.py
FileParserFactory.py
Parser.py
RscParser.py
XmlParser.py
)

View File

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

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
entries.py
files.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
errors.py
)

View File

@ -0,0 +1,6 @@
InstallSameDir(
__init__.py
morpheme.py
punctuation.py
syntax.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
pragmatics.py
semantics.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
glyphs.py
words.py
)

View File

@ -0,0 +1,5 @@
InstallSameDir(
__init__.py
addendum.py
physical_quantity.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
StdOEPy.py
)

View File

@ -0,0 +1,30 @@
add_library(stdoel_static STATIC
src/ScreenWriter.cpp
src/StdOELF.cpp
src/FileWriter.cpp
src/StdOEL.cpp
src/WriterFactory.cpp
)
set_property(TARGET stdoel_static PROPERTY POSITION_INDEPENDENT_CODE ON)
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)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Stitcher.py
)

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Datetime.py
)

View File

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

View File

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

View File

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

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Baseline.py
)

View File

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

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
Dopav.py
)

View File

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

View File

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

View File

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

View File

@ -0,0 +1,19 @@
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
utilLib
)
InstallSameDir(
fitoff
__init__.py
Fitoff.py
)

View File

@ -0,0 +1,43 @@
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
DataAccessor_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
)

View File

@ -0,0 +1,7 @@
add_python_test(driverFormslc.py)
add_python_test(testFormslcPy.py)
configure_file(
FormSCL930110.xml
FormSCL930110.xml
COPYONLY
)

View File

@ -0,0 +1,10 @@
Python_add_library(libgeolocate MODULE
src/geolocate_wrapper.c
src/geolocate.f
)
InstallSameDir(
libgeolocate
__init__.py
Geolocate.py
)

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,6 @@
add_subdirectory(alosreformat)
add_subdirectory(orbit)
add_subdirectory(rectify)
add_subdirectory(stdproc)
InstallSameDir(__init__.py)

View File

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

View File

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

View File

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

View File

@ -0,0 +1,4 @@
InstallSameDir(
__init__.py
pegManipulator.py
)

View File

@ -0,0 +1,3 @@
add_subdirectory(geocode)
InstallSameDir(__init__.py)

View File

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

Some files were not shown because too many files have changed in this diff Show More