commit
e68db01bf9
|
@ -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:
|
||||
|
|
|
@ -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