commit
e68db01bf9
|
@ -1,5 +1,59 @@
|
||||||
version: 2.1
|
version: 2.1
|
||||||
jobs:
|
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:
|
test:
|
||||||
docker:
|
docker:
|
||||||
- image: hysds/pge-base:latest
|
- image: hysds/pge-base:latest
|
||||||
|
@ -186,6 +240,7 @@ workflows:
|
||||||
test:
|
test:
|
||||||
jobs:
|
jobs:
|
||||||
- test
|
- test
|
||||||
|
- test-cmake
|
||||||
build-deploy:
|
build-deploy:
|
||||||
jobs:
|
jobs:
|
||||||
- build:
|
- build:
|
||||||
|
|
|
@ -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,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()
|
|
@ -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()
|
|
@ -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 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})")
|
|
@ -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()
|
|
@ -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,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
|
||||||
|
)
|
|
@ -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
|
||||||
|
)
|
|
@ -0,0 +1,4 @@
|
||||||
|
InstallSameDir(
|
||||||
|
__init__.py
|
||||||
|
Attitude.py
|
||||||
|
)
|
|
@ -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)
|
|
@ -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 @@
|
||||||
|
# TODO add_python_test(testRawImagePy.py)
|
||||||
|
# TODO 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 @@
|
||||||
|
# TODO add_python_test(testFilter.py)
|
||||||
|
# TODO 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 @@
|
||||||
|
# TODO add_python_test(test_offset.py)
|
||||||
|
# TODO add_python_test(test_pegfactory.py)
|
||||||
|
# TODO 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,11 @@
|
||||||
|
add_library(concatenate SHARED
|
||||||
|
src/frame_concatenate.c
|
||||||
|
src/swst_resample.c
|
||||||
|
)
|
||||||
|
|
||||||
|
InstallSameDir(
|
||||||
|
concatenate
|
||||||
|
__init__.py
|
||||||
|
Frame.py
|
||||||
|
Track.py
|
||||||
|
)
|
|
@ -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})
|
|
@ -0,0 +1,7 @@
|
||||||
|
InstallSameDir(
|
||||||
|
__init__.py
|
||||||
|
ALOS2.py
|
||||||
|
Frame.py
|
||||||
|
Swath.py
|
||||||
|
Track.py
|
||||||
|
)
|
|
@ -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,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
|
||||||
|
)
|
|
@ -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 @@
|
||||||
|
# TODO 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,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)
|
|
@ -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,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
|
||||||
|
)
|
|
@ -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
|
||||||
|
)
|
|
@ -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
|
||||||
|
)
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue