Fix python extension linking (#168)
* Silence annoying FindFFTW warnings * Fix linker errors at import-time Python extensions are weakly linked, so linker errors can only be caught at runtime. This commit fixes any such broken extensions, and adds automated import testing to ctests to prevent future regressions. It also adds a helper function `isce2_add_staticlib` which creates a position-independent static library suitable for usage in multiple python extensions. This matches the SCons build scripts more closely and allows for future extensions to be declared in a more terse and hygienic fashion. * Update utilLib scripts * Update combinedLib scripts * Update offoutliers lib scripts * Add asa_im_decode cdll * Update alos lib scripts * Show ctest output upon failure * Update DataAccessor scripts * Remove TARGET_FILE_BASE_NAME * Remove incomplete stdproc modules (require stanford code) Co-authored-by: Ryan Burns <rtburns-jpl@users.noreply.github.com>LT1AB
parent
f14981341d
commit
337dc9c158
|
@ -47,7 +47,7 @@ jobs:
|
||||||
set -ex
|
set -ex
|
||||||
cd /root/project/src/build
|
cd /root/project/src/build
|
||||||
. /opt/conda/bin/activate root
|
. /opt/conda/bin/activate root
|
||||||
ctest
|
ctest --output-on-failure
|
||||||
ISCE2DIR=$(python3 -c "import os, isce2; print(os.path.dirname(isce2.__file__))" | tail -n 1)
|
ISCE2DIR=$(python3 -c "import os, isce2; print(os.path.dirname(isce2.__file__))" | tail -n 1)
|
||||||
export PATH=$ISCE2DIR/applications:$PATH
|
export PATH=$ISCE2DIR/applications:$PATH
|
||||||
topsApp.py --help --steps
|
topsApp.py --help --steps
|
||||||
|
|
|
@ -131,8 +131,6 @@ foreach(dtype Float Double LongDouble)
|
||||||
|
|
||||||
# Tell find_package whether this component was found
|
# Tell find_package whether this component was found
|
||||||
set(FFTW_${component}_FIND_QUIETLY TRUE)
|
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
|
# Also set the value of the legacy library-variable
|
||||||
# (Will be set to *-NOTFOUND if not found)
|
# (Will be set to *-NOTFOUND if not found)
|
||||||
set(${libvar} ${FFTW_${component}})
|
set(${libvar} ${FFTW_${component}})
|
||||||
|
|
|
@ -10,6 +10,40 @@ macro(isce2_get_dir_prefix)
|
||||||
string(REPLACE "/" "." dir_prefix ${dir_prefix})
|
string(REPLACE "/" "." dir_prefix ${dir_prefix})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
# Usage: isce2_add_staticlib(name [sources ...])
|
||||||
|
# Creates a SCons-like isce2 intermediate library.
|
||||||
|
# The actual target will also be available via the namespaced isce2:: alias.
|
||||||
|
macro(isce2_add_staticlib name)
|
||||||
|
add_library(${name} STATIC ${ARGN})
|
||||||
|
set_target_properties(${name} PROPERTIES
|
||||||
|
OUTPUT_NAME ${name}
|
||||||
|
POSITION_INDEPENDENT_CODE ON
|
||||||
|
)
|
||||||
|
# add alias matching exported target
|
||||||
|
add_library(isce2::${name} ALIAS ${name})
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
# Usage: isce2_add_cdll(libname [sources ...])
|
||||||
|
# These libraries are loaded using a hardcoded filename, so this
|
||||||
|
# macro simplifies adding target properties to make that possible.
|
||||||
|
macro(isce2_add_cdll target)
|
||||||
|
add_library(${target} SHARED ${ARGN})
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
PREFIX ""
|
||||||
|
OUTPUT_NAME ${target}
|
||||||
|
SUFFIX .so)
|
||||||
|
|
||||||
|
# If we're the root cmake project (e.g. not add_subdirectory):
|
||||||
|
if("${CMAKE_SOURCE_DIR}" STREQUAL "${PROJECT_SOURCE_DIR}")
|
||||||
|
# override this to also test the resulting extension
|
||||||
|
add_test(NAME load_cdll_${target}
|
||||||
|
COMMAND ${Python_EXECUTABLE} -c
|
||||||
|
"from ctypes import cdll; \
|
||||||
|
cdll.LoadLibrary('$<TARGET_FILE:${target}>')"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
# Usage:
|
# Usage:
|
||||||
# add_exe_test(main.cpp helpers.F [additional_source.c ...] )
|
# add_exe_test(main.cpp helpers.F [additional_source.c ...] )
|
||||||
# or
|
# or
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
cmake_minimum_required(VERSION 3.12 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.13...3.18)
|
||||||
|
|
||||||
project(isce2 LANGUAGES C CXX Fortran)
|
project(isce2 LANGUAGES C CXX Fortran)
|
||||||
|
|
||||||
|
@ -26,6 +26,18 @@ include(TargetMotif)
|
||||||
include(TargetX11)
|
include(TargetX11)
|
||||||
include(UseCython)
|
include(UseCython)
|
||||||
|
|
||||||
|
# If we're the root cmake project (e.g. not add_subdirectory):
|
||||||
|
if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_LIST_DIR}")
|
||||||
|
# override this to also test the resulting extension
|
||||||
|
function(Python_add_library target)
|
||||||
|
_Python_add_library(${target} ${ARGN})
|
||||||
|
add_test(NAME import_${target}
|
||||||
|
COMMAND ${Python_EXECUTABLE} -c
|
||||||
|
"import ${target}"
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT DEFINED PYTHON_MODULE_DIR)
|
if(NOT DEFINED PYTHON_MODULE_DIR)
|
||||||
set(PYTHON_MODULE_DIR packages CACHE PATH
|
set(PYTHON_MODULE_DIR packages CACHE PATH
|
||||||
"Python module directory (relative to install prefix)")
|
"Python module directory (relative to install prefix)")
|
||||||
|
|
|
@ -296,7 +296,7 @@ and then try "scons install" again.
|
||||||
|
|
||||||
### CMake (experimental)
|
### CMake (experimental)
|
||||||
Make sure you have the following prerequisites:
|
Make sure you have the following prerequisites:
|
||||||
* CMake ≥ 3.12
|
* CMake ≥ 3.13
|
||||||
* GCC ≥ 4.8 (with C++11 support)
|
* GCC ≥ 4.8 (with C++11 support)
|
||||||
* Python ≥ 3.5
|
* Python ≥ 3.5
|
||||||
* Cython
|
* Cython
|
||||||
|
|
|
@ -1,15 +1,14 @@
|
||||||
add_library(LineAccessor_static STATIC
|
isce2_add_staticlib(LineAccessorLib
|
||||||
src/ImageAccessor.cpp
|
src/ImageAccessor.cpp
|
||||||
src/LineAccessor.cpp
|
src/LineAccessor.cpp
|
||||||
src/LineAccessorF.cpp
|
src/LineAccessorF.cpp
|
||||||
)
|
)
|
||||||
target_include_directories(LineAccessor_static PUBLIC include)
|
target_include_directories(LineAccessorLib PUBLIC include)
|
||||||
set_property(TARGET LineAccessor_static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
||||||
|
|
||||||
Python_add_library(LineAccessor MODULE
|
Python_add_library(LineAccessor MODULE
|
||||||
bindings/LineAccessormodule.cpp
|
bindings/LineAccessormodule.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(LineAccessor PUBLIC LineAccessor_static)
|
target_link_libraries(LineAccessor PRIVATE isce2::LineAccessorLib)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
LineAccessor
|
LineAccessor
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Python_add_library(orbitHermite MODULE
|
isce2_add_cdll(orbitHermite
|
||||||
src/orbitHermiteC.c
|
src/orbitHermiteC.c
|
||||||
src/orbithermite.F
|
src/orbithermite.F
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,11 +2,7 @@ add_subdirectory(db)
|
||||||
add_subdirectory(TOPS)
|
add_subdirectory(TOPS)
|
||||||
add_subdirectory(MultiMode)
|
add_subdirectory(MultiMode)
|
||||||
|
|
||||||
add_library(asa_im_decode src/asa_im_decode/asa_im_decode.c)
|
isce2_add_cdll(asa_im_decode src/asa_im_decode/asa_im_decode.c)
|
||||||
set_target_properties(asa_im_decode PROPERTIES
|
|
||||||
PREFIX ""
|
|
||||||
OUTPUT_NAME envisat
|
|
||||||
SUFFIX .so)
|
|
||||||
|
|
||||||
set(installfiles
|
set(installfiles
|
||||||
asa_im_decode
|
asa_im_decode
|
||||||
|
@ -94,6 +90,6 @@ target_include_directories(alos PUBLIC
|
||||||
include
|
include
|
||||||
src/ALOS_pre_process
|
src/ALOS_pre_process
|
||||||
)
|
)
|
||||||
target_link_libraries(alos PUBLIC DataAccessor_static)
|
target_link_libraries(alos PUBLIC isce2::DataAccessorLib)
|
||||||
|
|
||||||
InstallSameDir(${installfiles})
|
InstallSameDir(${installfiles})
|
||||||
|
|
|
@ -1,83 +1,14 @@
|
||||||
add_subdirectory(ImageUtil)
|
add_subdirectory(ImageUtil)
|
||||||
add_subdirectory(geo)
|
add_subdirectory(geo)
|
||||||
|
add_subdirectory(offoutliers)
|
||||||
|
|
||||||
Python_add_library(offoutliers MODULE
|
Python_add_library(offoutliers MODULE
|
||||||
offoutliers/bindings/offoutliersmodule.cpp
|
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
|
|
||||||
)
|
)
|
||||||
|
target_link_libraries(offoutliers PRIVATE isce2::offoutliersLib)
|
||||||
|
|
||||||
add_definitions(-DHAVE_CONFIG_H -DHAVE_FFTW=1)
|
add_definitions(-DHAVE_CONFIG_H -DHAVE_FFTW=1)
|
||||||
|
add_subdirectory(src)
|
||||||
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
|
target_include_directories(utilLib PUBLIC
|
||||||
include
|
include
|
||||||
)
|
)
|
||||||
|
@ -85,7 +16,7 @@ target_link_libraries(utilLib PRIVATE
|
||||||
FFTW::Float
|
FFTW::Float
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(combinedLib SHARED
|
isce2_add_staticlib(combinedLib
|
||||||
Library/geometry/src/geometryModule.F
|
Library/geometry/src/geometryModule.F
|
||||||
Library/linalg3/src/linalg3Module.F
|
Library/linalg3/src/linalg3Module.F
|
||||||
Library/linalg3/src/linalg3.c
|
Library/linalg3/src/linalg3.c
|
||||||
|
@ -112,7 +43,7 @@ target_include_directories(combinedlibmodule PUBLIC
|
||||||
Library/include
|
Library/include
|
||||||
)
|
)
|
||||||
target_link_libraries(combinedlibmodule PUBLIC
|
target_link_libraries(combinedlibmodule PUBLIC
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
)
|
)
|
||||||
|
|
||||||
# Set up fortran module paths
|
# Set up fortran module paths
|
||||||
|
@ -127,12 +58,6 @@ target_include_directories(combinedLib INTERFACE
|
||||||
$<$<COMPILE_LANGUAGE:Fortran>:${mdir}>
|
$<$<COMPILE_LANGUAGE:Fortran>:${mdir}>
|
||||||
)
|
)
|
||||||
|
|
||||||
install(TARGETS
|
|
||||||
utilLib
|
|
||||||
combinedLib
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
)
|
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
combinedlibmodule
|
combinedlibmodule
|
||||||
offoutliers
|
offoutliers
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
add_subdirectory(src)
|
||||||
|
target_include_directories(offoutliersLib PUBLIC include)
|
||||||
|
target_link_libraries(offoutliersLib PRIVATE isce2::stdoelLib)
|
|
@ -0,0 +1,7 @@
|
||||||
|
isce2_add_staticlib(offoutliersLib STATIC
|
||||||
|
offoutliers.F
|
||||||
|
offoutliersAllocateDeallocate.F
|
||||||
|
offoutliersGetState.F
|
||||||
|
offoutliersSetState.F
|
||||||
|
offoutliersState.F
|
||||||
|
)
|
|
@ -0,0 +1,62 @@
|
||||||
|
isce2_add_staticlib(utilLib
|
||||||
|
akima_reg.F
|
||||||
|
args_roi.F
|
||||||
|
besseldiffs.F
|
||||||
|
bilinear.F
|
||||||
|
cfft1d_jpl.F
|
||||||
|
cfft2d.F
|
||||||
|
cffts.F
|
||||||
|
config.h
|
||||||
|
convert_schdot_to_xyzdot.F
|
||||||
|
convert_sch_to_xyz.F
|
||||||
|
cross.F
|
||||||
|
curvature.F
|
||||||
|
derampc.F
|
||||||
|
dop.F
|
||||||
|
dot.F
|
||||||
|
enubasis.F
|
||||||
|
fc.F
|
||||||
|
fc.f.org
|
||||||
|
fftw3stub.c
|
||||||
|
fftw3stub.cc
|
||||||
|
fortranUtils.f90
|
||||||
|
fourn.F
|
||||||
|
fournnr.F
|
||||||
|
getangs.F
|
||||||
|
gettcn_tcvec.F
|
||||||
|
hunt.F
|
||||||
|
inter_motion.F
|
||||||
|
interp.F
|
||||||
|
intp_coef.f90
|
||||||
|
intpcoefnorm.F
|
||||||
|
io.c
|
||||||
|
latlon.F
|
||||||
|
latlon_nostruct.F
|
||||||
|
lfit.F
|
||||||
|
linalg.f90
|
||||||
|
lincomb.F
|
||||||
|
lookvec.F
|
||||||
|
lsq.f90
|
||||||
|
matmat.F
|
||||||
|
matvec.F
|
||||||
|
norm.F
|
||||||
|
orrmread1.F
|
||||||
|
polint.F
|
||||||
|
PowerOfTwo.cc
|
||||||
|
quadfit.f90
|
||||||
|
radar_to_xyz.F
|
||||||
|
rdf_common.inc
|
||||||
|
roi_exit.cc
|
||||||
|
schbasis.F
|
||||||
|
second.c
|
||||||
|
sfftw_import.c
|
||||||
|
spline.f
|
||||||
|
svd.F
|
||||||
|
svdvecfit9.F
|
||||||
|
svdvecfit.F
|
||||||
|
tranmat.F
|
||||||
|
uniform_interp.f90
|
||||||
|
unitvec.F
|
||||||
|
utmtoll.F
|
||||||
|
zbrent.F
|
||||||
|
)
|
|
@ -1,8 +1,4 @@
|
||||||
# TODO (subdir-staticlib)
|
isce2_add_staticlib(DataAccessorLib
|
||||||
# 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/DataAccessorCaster.cpp
|
||||||
DataAccessor/src/DataAccessor.cpp
|
DataAccessor/src/DataAccessor.cpp
|
||||||
DataAccessor/src/DataAccessorF.cpp
|
DataAccessor/src/DataAccessorF.cpp
|
||||||
|
@ -18,33 +14,31 @@ add_library(DataAccessor_static STATIC
|
||||||
InterleavedAccessor/src/Poly1dInterpolator.cpp
|
InterleavedAccessor/src/Poly1dInterpolator.cpp
|
||||||
InterleavedAccessor/src/Poly2dInterpolator.cpp
|
InterleavedAccessor/src/Poly2dInterpolator.cpp
|
||||||
)
|
)
|
||||||
|
target_include_directories(DataAccessorLib PUBLIC
|
||||||
set_property(TARGET DataAccessor_static PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
||||||
target_include_directories(DataAccessor_static PUBLIC
|
|
||||||
DataAccessor/include
|
DataAccessor/include
|
||||||
DataCaster/include
|
DataCaster/include
|
||||||
Factories/include
|
Factories/include
|
||||||
InterleavedAccessor/include
|
InterleavedAccessor/include
|
||||||
)
|
)
|
||||||
target_link_libraries(DataAccessor_static PUBLIC
|
target_link_libraries(DataAccessorLib PUBLIC
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
)
|
)
|
||||||
|
|
||||||
if(TARGET GDAL::GDAL)
|
if(TARGET GDAL::GDAL)
|
||||||
target_sources(DataAccessor_static PRIVATE
|
target_sources(DataAccessorLib PRIVATE
|
||||||
InterleavedAccessor/src/GDALAccessor.cpp
|
InterleavedAccessor/src/GDALAccessor.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(DataAccessor_static PUBLIC
|
target_link_libraries(DataAccessorLib PUBLIC
|
||||||
GDAL::GDAL
|
GDAL::GDAL
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
target_compile_definitions(DataAccessor_static PRIVATE -DHAVE_GDAL=0)
|
target_compile_definitions(DataAccessorLib PRIVATE -DHAVE_GDAL=0)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
Python_add_library(DataAccessor MODULE
|
Python_add_library(DataAccessor MODULE
|
||||||
DataAccessor/bindings/DataAccessormodule.cpp
|
DataAccessor/bindings/DataAccessormodule.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(DataAccessor PRIVATE DataAccessor_static)
|
target_link_libraries(DataAccessor PRIVATE isce2::DataAccessorLib)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
Factories/CasterFactory.py
|
Factories/CasterFactory.py
|
||||||
|
|
|
@ -2,3 +2,17 @@ InstallSameDir(
|
||||||
__init__.py
|
__init__.py
|
||||||
StdOEPy.py
|
StdOEPy.py
|
||||||
)
|
)
|
||||||
|
|
||||||
|
isce2_add_staticlib(stdoeLib
|
||||||
|
src/StdOE.cpp
|
||||||
|
src/StdOEDefaults.cpp
|
||||||
|
src/StdOEF.cpp
|
||||||
|
)
|
||||||
|
target_include_directories(stdoeLib PUBLIC
|
||||||
|
include
|
||||||
|
)
|
||||||
|
|
||||||
|
Python_add_library(StdOE MODULE
|
||||||
|
bindings/StdOEmodule.cpp
|
||||||
|
)
|
||||||
|
target_link_libraries(StdOE PRIVATE isce2::stdoeLib)
|
||||||
|
|
|
@ -1,17 +1,10 @@
|
||||||
add_library(stdoel_static STATIC
|
add_subdirectory(src)
|
||||||
src/ScreenWriter.cpp
|
target_include_directories(stdoelLib PUBLIC include)
|
||||||
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
|
Python_add_library(StdOEL MODULE
|
||||||
bindings/StdOELmodule.cpp
|
bindings/StdOELmodule.cpp
|
||||||
)
|
)
|
||||||
target_link_libraries(StdOEL PUBLIC stdoel_static)
|
target_link_libraries(StdOEL PUBLIC isce2::stdoelLib)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
StdOEL
|
StdOEL
|
||||||
|
@ -19,12 +12,7 @@ InstallSameDir(
|
||||||
StdOELPy.py
|
StdOELPy.py
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(testStdOEL test/testStdOEL.cpp
|
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)
|
target_include_directories(testStdOEL PUBLIC include)
|
||||||
|
target_link_libraries(testStdOEL PRIVATE isce2::stdoelLib)
|
||||||
add_exe_test(testStdOEL)
|
add_exe_test(testStdOEL)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
isce2_add_staticlib(stdoelLib
|
||||||
|
ScreenWriter.cpp
|
||||||
|
StdOELF.cpp
|
||||||
|
FileWriter.cpp
|
||||||
|
StdOEL.cpp
|
||||||
|
WriterFactory.cpp
|
||||||
|
)
|
|
@ -7,7 +7,7 @@ Python_add_library(aikima MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(aikima PUBLIC include)
|
target_include_directories(aikima PUBLIC include)
|
||||||
target_link_libraries(aikima PUBLIC
|
target_link_libraries(aikima PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -9,8 +9,8 @@ Python_add_library(ampcor MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(ampcor PUBLIC include)
|
target_include_directories(ampcor PUBLIC include)
|
||||||
target_link_libraries(ampcor PUBLIC
|
target_link_libraries(ampcor PUBLIC
|
||||||
utilLib
|
isce2::utilLib
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -5,7 +5,7 @@ Python_add_library(correlationlib MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(correlationlib PUBLIC include)
|
target_include_directories(correlationlib PUBLIC include)
|
||||||
target_link_libraries(correlationlib PRIVATE
|
target_link_libraries(correlationlib PRIVATE
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -7,7 +7,7 @@ Python_add_library(dopiq MODULE
|
||||||
src/dopiqState.f
|
src/dopiqState.f
|
||||||
)
|
)
|
||||||
target_include_directories(dopiq PUBLIC include)
|
target_include_directories(dopiq PUBLIC include)
|
||||||
target_link_libraries(dopiq PUBLIC DataAccessor_static)
|
target_link_libraries(dopiq PUBLIC isce2::DataAccessorLib)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
dopiq
|
dopiq
|
||||||
|
|
|
@ -7,7 +7,7 @@ Python_add_library(doppler MODULE
|
||||||
src/dopplerState.f
|
src/dopplerState.f
|
||||||
)
|
)
|
||||||
target_include_directories(doppler PUBLIC include)
|
target_include_directories(doppler PUBLIC include)
|
||||||
target_link_libraries(doppler PUBLIC DataAccessor_static)
|
target_link_libraries(doppler PUBLIC isce2::DataAccessorLib)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
doppler
|
doppler
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Python_add_library(libfilter MODULE
|
isce2_add_cdll(libfilter
|
||||||
src/rescale_magnitude.c
|
src/rescale_magnitude.c
|
||||||
src/psfilt.c
|
src/psfilt.c
|
||||||
src/timing.c
|
src/timing.c
|
||||||
|
|
|
@ -8,8 +8,8 @@ Python_add_library(fitoff MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(fitoff PUBLIC include)
|
target_include_directories(fitoff PUBLIC include)
|
||||||
target_link_libraries(fitoff PUBLIC
|
target_link_libraries(fitoff PUBLIC
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -13,11 +13,11 @@ target_include_directories(formslc PUBLIC
|
||||||
formslc/include
|
formslc/include
|
||||||
)
|
)
|
||||||
target_link_libraries(formslc PRIVATE
|
target_link_libraries(formslc PRIVATE
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(formslc PUBLIC
|
target_link_libraries(formslc PUBLIC
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Python_add_library(libgeolocate MODULE
|
isce2_add_cdll(libgeolocate
|
||||||
src/geolocate_wrapper.c
|
src/geolocate_wrapper.c
|
||||||
src/geolocate.f
|
src/geolocate.f
|
||||||
)
|
)
|
||||||
|
|
|
@ -7,6 +7,11 @@ Python_add_library(get_peg_info MODULE
|
||||||
src/get_peg_infoState.F
|
src/get_peg_infoState.F
|
||||||
)
|
)
|
||||||
target_include_directories(get_peg_info PUBLIC include)
|
target_include_directories(get_peg_info PUBLIC include)
|
||||||
|
target_link_libraries(get_peg_info PRIVATE
|
||||||
|
isce2::utilLib
|
||||||
|
isce2::stdoelLib
|
||||||
|
isce2::stdoeLib
|
||||||
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
get_peg_info
|
get_peg_info
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Python_add_library(libgrass MODULE
|
isce2_add_cdll(libgrass
|
||||||
src/corr_flag.c
|
src/corr_flag.c
|
||||||
src/grass.c
|
src/grass.c
|
||||||
src/trees.c
|
src/trees.c
|
||||||
|
|
|
@ -22,8 +22,8 @@ Python_add_library(icu MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(icu PUBLIC include)
|
target_include_directories(icu PUBLIC include)
|
||||||
target_link_libraries(icu PUBLIC
|
target_link_libraries(icu PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -3,7 +3,7 @@ Python_add_library(looks MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(looks PUBLIC include)
|
target_include_directories(looks PUBLIC include)
|
||||||
target_link_libraries(looks PRIVATE
|
target_link_libraries(looks PRIVATE
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -3,8 +3,8 @@ Python_add_library(ALOS_fbd2fbs MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(ALOS_fbd2fbs PUBLIC include)
|
target_include_directories(ALOS_fbd2fbs PUBLIC include)
|
||||||
target_link_libraries(ALOS_fbd2fbs PUBLIC
|
target_link_libraries(ALOS_fbd2fbs PUBLIC
|
||||||
alos_lib
|
isce2::alosLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -3,8 +3,8 @@ Python_add_library(ALOS_fbs2fbd MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(ALOS_fbs2fbd PUBLIC include)
|
target_include_directories(ALOS_fbs2fbd PUBLIC include)
|
||||||
target_link_libraries(ALOS_fbs2fbd PUBLIC
|
target_link_libraries(ALOS_fbs2fbd PUBLIC
|
||||||
alos_lib
|
isce2::alosLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
add_library(alos_lib STATIC
|
isce2_add_staticlib(alosLib
|
||||||
ALOS_lib/src/cfft1d.c
|
ALOS_lib/src/cfft1d.c
|
||||||
ALOS_lib/src/find_fft_length.c
|
ALOS_lib/src/find_fft_length.c
|
||||||
ALOS_lib/src/utils.c
|
ALOS_lib/src/utils.c
|
||||||
ALOS_lib/src/ALOS_ldr_orbit.c
|
ALOS_lib/src/ALOS_ldr_orbit.c
|
||||||
ALOS_lib/src/SConscript
|
|
||||||
ALOS_lib/src/calc_dop.c
|
ALOS_lib/src/calc_dop.c
|
||||||
ALOS_lib/src/cfft1d_fftpack.c
|
ALOS_lib/src/cfft1d_fftpack.c
|
||||||
ALOS_lib/src/fftpack.c
|
ALOS_lib/src/fftpack.c
|
||||||
|
@ -14,8 +13,7 @@ add_library(alos_lib STATIC
|
||||||
ALOS_lib/src/read_ALOS_sarleader.c
|
ALOS_lib/src/read_ALOS_sarleader.c
|
||||||
ALOS_lib/src/rng_compress.c
|
ALOS_lib/src/rng_compress.c
|
||||||
)
|
)
|
||||||
target_include_directories(alos_lib PUBLIC include)
|
target_include_directories(alosLib PUBLIC include)
|
||||||
set_property(TARGET alos_lib PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
||||||
|
|
||||||
add_subdirectory(ALOS_fbd2fbs)
|
add_subdirectory(ALOS_fbd2fbs)
|
||||||
add_subdirectory(ALOS_fbs2fbd)
|
add_subdirectory(ALOS_fbs2fbd)
|
||||||
|
|
|
@ -11,11 +11,11 @@ Python_add_library(geocode MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(geocode PUBLIC include)
|
target_include_directories(geocode PUBLIC include)
|
||||||
target_link_libraries(geocode PUBLIC
|
target_link_libraries(geocode PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
OpenMP::OpenMP_CXX
|
OpenMP::OpenMP_CXX
|
||||||
stdoel_static
|
isce2::stdoelLib
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -1,27 +1,5 @@
|
||||||
# TODO (subdir-staticlib)
|
add_subdirectory(formslcLib)
|
||||||
# This library is in a subdirectory but used by other libraries,
|
add_subdirectory(resampLib)
|
||||||
# so it's compiled as a static library so we don't need to worry
|
|
||||||
# about RPATH. Is there a better way to this?
|
|
||||||
add_library(formslcLib SHARED
|
|
||||||
formslcLib/src/arraymodule.f90
|
|
||||||
formslcLib/src/get_frate.f90
|
|
||||||
formslcLib/src/io.c
|
|
||||||
)
|
|
||||||
set_property(TARGET formslcLib PROPERTY POSITION_INDEPENDENT_CODE ON)
|
|
||||||
target_link_libraries(formslcLib PUBLIC
|
|
||||||
utilLib
|
|
||||||
)
|
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
|
||||||
target_link_libraries(formslcLib PUBLIC
|
|
||||||
OpenMP::OpenMP_Fortran
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(mdir ${CMAKE_CURRENT_BINARY_DIR}/formslc_fortran_modules)
|
|
||||||
set_property(TARGET formslcLib PROPERTY Fortran_MODULE_DIRECTORY ${mdir})
|
|
||||||
target_include_directories(formslcLib INTERFACE
|
|
||||||
$<$<COMPILE_LANGUAGE:Fortran>:${mdir}>
|
|
||||||
)
|
|
||||||
|
|
||||||
add_subdirectory(correct)
|
add_subdirectory(correct)
|
||||||
add_subdirectory(crossmul)
|
add_subdirectory(crossmul)
|
||||||
|
|
|
@ -1,17 +1,4 @@
|
||||||
Python_add_library(correct MODULE
|
|
||||||
bindings/correctmodule.cpp
|
|
||||||
src/correctAllocateDeallocate.f
|
|
||||||
src/correctSetState.f
|
|
||||||
src/correctState.f
|
|
||||||
)
|
|
||||||
target_include_directories(correct PUBLIC include)
|
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
|
||||||
target_link_libraries(correct PUBLIC
|
|
||||||
OpenMP::OpenMP_Fortran
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
correct
|
|
||||||
__init__.py
|
__init__.py
|
||||||
Correct.py
|
Correct.py
|
||||||
)
|
)
|
||||||
|
|
|
@ -4,6 +4,10 @@ Python_add_library(crossmul MODULE
|
||||||
src/crossmul.f90
|
src/crossmul.f90
|
||||||
)
|
)
|
||||||
target_include_directories(crossmul PUBLIC include)
|
target_include_directories(crossmul PUBLIC include)
|
||||||
|
target_link_libraries(crossmul PRIVATE
|
||||||
|
isce2::utilLib
|
||||||
|
isce2::DataAccessorLib
|
||||||
|
)
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
if(TARGET OpenMP::OpenMP_Fortran)
|
||||||
target_link_libraries(crossmul PUBLIC
|
target_link_libraries(crossmul PUBLIC
|
||||||
OpenMP::OpenMP_Fortran
|
OpenMP::OpenMP_Fortran
|
||||||
|
|
|
@ -1,14 +1,4 @@
|
||||||
Python_add_library(estamb MODULE
|
|
||||||
bindings/estambmodule.cpp
|
|
||||||
src/estambAllocateDeallocate.F
|
|
||||||
src/estambGetState.F
|
|
||||||
src/estambSetState.F
|
|
||||||
src/estambStateSoi.f90
|
|
||||||
)
|
|
||||||
target_include_directories(estamb PUBLIC include)
|
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
estamb
|
|
||||||
__init__.py
|
__init__.py
|
||||||
Estamb.py
|
Estamb.py
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,22 +1,4 @@
|
||||||
Python_add_library(stdproc_formslc MODULE
|
|
||||||
bindings/formslcmodule.cpp
|
|
||||||
src/formslcAllocateDeallocate.F
|
|
||||||
src/formslcGetState.F
|
|
||||||
src/formslcSetState.F
|
|
||||||
src/formslcStateSoi.f90
|
|
||||||
)
|
|
||||||
target_include_directories(stdproc_formslc PUBLIC include)
|
|
||||||
target_link_libraries(stdproc_formslc PUBLIC
|
|
||||||
combinedLib
|
|
||||||
formslcLib
|
|
||||||
utilLib
|
|
||||||
)
|
|
||||||
|
|
||||||
set_target_properties(stdproc_formslc
|
|
||||||
PROPERTIES OUTPUT_NAME formslc)
|
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
stdproc_formslc
|
|
||||||
__init__.py
|
__init__.py
|
||||||
Formslc.py
|
Formslc.py
|
||||||
)
|
)
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
isce2_add_staticlib(formslcLib
|
||||||
|
src/arraymodule.f90
|
||||||
|
src/get_frate.f90
|
||||||
|
src/io.c
|
||||||
|
)
|
||||||
|
target_link_libraries(formslcLib PUBLIC
|
||||||
|
isce2::utilLib
|
||||||
|
)
|
||||||
|
if(TARGET OpenMP::OpenMP_Fortran)
|
||||||
|
target_link_libraries(formslcLib PUBLIC
|
||||||
|
OpenMP::OpenMP_Fortran
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
set(mdir ${CMAKE_CURRENT_BINARY_DIR}/formslc_fortran_modules)
|
||||||
|
set_property(TARGET formslcLib PROPERTY Fortran_MODULE_DIRECTORY ${mdir})
|
||||||
|
target_include_directories(formslcLib INTERFACE
|
||||||
|
$<$<COMPILE_LANGUAGE:Fortran>:${mdir}>
|
||||||
|
)
|
|
@ -1,24 +1,4 @@
|
||||||
Python_add_library(mocompTSX MODULE
|
|
||||||
bindings/mocompTSXmodule.cpp
|
|
||||||
src/mocompTSXAllocateDeallocate.f
|
|
||||||
src/mocompTSXGetState.f
|
|
||||||
src/mocompTSXSetState.f
|
|
||||||
src/mocompTSXState.f
|
|
||||||
)
|
|
||||||
target_include_directories(mocompTSX PUBLIC include)
|
|
||||||
target_link_libraries(mocompTSX
|
|
||||||
PUBLIC
|
|
||||||
combinedLib
|
|
||||||
formslcLib
|
|
||||||
utilLib
|
|
||||||
)
|
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
|
||||||
target_link_libraries(mocompTSX PUBLIC
|
|
||||||
OpenMP::OpenMP_Fortran
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
mocompTSX
|
|
||||||
__init__.py
|
__init__.py
|
||||||
MocompTSX.py
|
MocompTSX.py
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,15 +1,22 @@
|
||||||
Python_add_library(offsetpoly MODULE
|
isce2_add_staticlib(offsetpolyLib
|
||||||
bindings/offsetpolymodule.cpp
|
|
||||||
src/offsetpolyState.F
|
src/offsetpolyState.F
|
||||||
src/offsetpoly.f90
|
src/offsetpoly.f90
|
||||||
src/offsetpolySetState.F
|
src/offsetpolySetState.F
|
||||||
src/offsetpolyAllocateDeallocate.F
|
src/offsetpolyAllocateDeallocate.F
|
||||||
src/offsetpolyGetState.F
|
src/offsetpolyGetState.F
|
||||||
)
|
)
|
||||||
|
target_link_libraries(offsetpolyLib PRIVATE
|
||||||
|
isce2::utilLib
|
||||||
|
)
|
||||||
|
|
||||||
|
Python_add_library(offsetpoly MODULE
|
||||||
|
bindings/offsetpolymodule.cpp
|
||||||
|
)
|
||||||
target_include_directories(offsetpoly PUBLIC include)
|
target_include_directories(offsetpoly PUBLIC include)
|
||||||
target_link_libraries(offsetpoly PUBLIC
|
target_link_libraries(offsetpoly PRIVATE
|
||||||
combinedLib
|
isce2::offsetpolyLib
|
||||||
utilLib
|
isce2::resampLib
|
||||||
|
isce2::stdoelLib
|
||||||
)
|
)
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
if(TARGET OpenMP::OpenMP_Fortran)
|
||||||
target_link_libraries(offsetpoly PUBLIC
|
target_link_libraries(offsetpoly PUBLIC
|
||||||
|
|
|
@ -8,7 +8,10 @@ Python_add_library(resamp MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(resamp PUBLIC include)
|
target_include_directories(resamp PUBLIC include)
|
||||||
target_link_libraries(resamp PUBLIC
|
target_link_libraries(resamp PUBLIC
|
||||||
utilLib
|
isce2::resampLib
|
||||||
|
isce2::utilLib
|
||||||
|
isce2::stdoelLib
|
||||||
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
if(TARGET OpenMP::OpenMP_Fortran)
|
||||||
target_link_libraries(resamp PUBLIC
|
target_link_libraries(resamp PUBLIC
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
add_subdirectory(src)
|
|
@ -0,0 +1,8 @@
|
||||||
|
isce2_add_staticlib(resampLib
|
||||||
|
poly_funcs.f90
|
||||||
|
svd.f
|
||||||
|
svdvecfit.f
|
||||||
|
)
|
||||||
|
target_link_libraries(resampLib PRIVATE
|
||||||
|
isce2::utilLib
|
||||||
|
)
|
|
@ -7,6 +7,10 @@ Python_add_library(resamp_amps MODULE
|
||||||
src/resamp_ampsState.F
|
src/resamp_ampsState.F
|
||||||
)
|
)
|
||||||
target_include_directories(resamp_amps PUBLIC include)
|
target_include_directories(resamp_amps PUBLIC include)
|
||||||
|
target_link_libraries(resamp_amps PRIVATE
|
||||||
|
isce2::DataAccessorLib
|
||||||
|
isce2::resampLib
|
||||||
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
resamp_amps
|
resamp_amps
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
Python_add_library(resamp_image MODULE
|
Python_add_library(resamp_image MODULE
|
||||||
bindings/resamp_imagemodule.cpp
|
bindings/resamp_imagemodule.cpp
|
||||||
src/resamp_imageState.F
|
src/resamp_imageState.F
|
||||||
|
@ -7,7 +9,10 @@ Python_add_library(resamp_image MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(resamp_image PUBLIC include)
|
target_include_directories(resamp_image PUBLIC include)
|
||||||
target_link_libraries(resamp_image PUBLIC
|
target_link_libraries(resamp_image PUBLIC
|
||||||
utilLib
|
isce2::DataAccessorLib
|
||||||
|
isce2::resampLib
|
||||||
|
isce2::utilLib
|
||||||
|
isce2::stdoelLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -7,6 +7,11 @@ Python_add_library(resamp_only MODULE
|
||||||
src/resamp_onlyState.F
|
src/resamp_onlyState.F
|
||||||
)
|
)
|
||||||
target_include_directories(resamp_only PUBLIC include)
|
target_include_directories(resamp_only PUBLIC include)
|
||||||
|
target_link_libraries(resamp_only PRIVATE
|
||||||
|
isce2::DataAccessorLib
|
||||||
|
isce2::resampLib
|
||||||
|
isce2::stdoelLib
|
||||||
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
resamp_only
|
resamp_only
|
||||||
|
|
|
@ -7,8 +7,9 @@ Python_add_library(resamp_slc MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(resamp_slc PUBLIC include)
|
target_include_directories(resamp_slc PUBLIC include)
|
||||||
target_link_libraries(resamp_slc PUBLIC
|
target_link_libraries(resamp_slc PUBLIC
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
target_compile_options(resamp_slc PRIVATE
|
target_compile_options(resamp_slc PRIVATE
|
||||||
-ffree-line-length-none
|
-ffree-line-length-none
|
||||||
|
|
|
@ -1,24 +1,4 @@
|
||||||
Python_add_library(topo MODULE
|
|
||||||
bindings/topomodule.cpp
|
|
||||||
src/topoAllocateDeallocate.f
|
|
||||||
src/topoGetState.f
|
|
||||||
src/topoMethods.f
|
|
||||||
src/topoSetState.f
|
|
||||||
src/topoState.f
|
|
||||||
)
|
|
||||||
target_include_directories(topo PUBLIC include)
|
|
||||||
target_link_libraries(topo PUBLIC
|
|
||||||
combinedLib
|
|
||||||
utilLib
|
|
||||||
)
|
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
|
||||||
target_link_libraries(topo PUBLIC
|
|
||||||
OpenMP::OpenMP_Fortran
|
|
||||||
)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
topo
|
|
||||||
__init__.py
|
__init__.py
|
||||||
Topo.py
|
Topo.py
|
||||||
)
|
)
|
||||||
|
|
|
@ -16,7 +16,7 @@ target_include_directories(GPUampcor PUBLIC
|
||||||
)
|
)
|
||||||
target_link_libraries(GPUampcor PRIVATE
|
target_link_libraries(GPUampcor PRIVATE
|
||||||
CUDA::cublas
|
CUDA::cublas
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
FFTW::Float
|
FFTW::Float
|
||||||
)
|
)
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -12,7 +12,7 @@ target_include_directories(GPUgeo2rdr PUBLIC
|
||||||
include
|
include
|
||||||
)
|
)
|
||||||
target_link_libraries(GPUgeo2rdr PRIVATE
|
target_link_libraries(GPUgeo2rdr PRIVATE
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
if(TARGET OpenMP::OpenMP_CXX)
|
if(TARGET OpenMP::OpenMP_CXX)
|
||||||
target_link_libraries(GPUgeo2rdr PRIVATE OpenMP::OpenMP_CXX)
|
target_link_libraries(GPUgeo2rdr PRIVATE OpenMP::OpenMP_CXX)
|
||||||
|
|
|
@ -6,9 +6,9 @@ Python_add_library(geo2rdr MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(geo2rdr PUBLIC include)
|
target_include_directories(geo2rdr PUBLIC include)
|
||||||
target_link_libraries(geo2rdr PUBLIC
|
target_link_libraries(geo2rdr PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
if(TARGET OpenMP::OpenMP_Fortran)
|
||||||
|
|
|
@ -10,9 +10,9 @@ Python_add_library(geozero MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(geozero PUBLIC include)
|
target_include_directories(geozero PUBLIC include)
|
||||||
target_link_libraries(geozero PUBLIC
|
target_link_libraries(geozero PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
OpenMP::OpenMP_Fortran
|
OpenMP::OpenMP_Fortran
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -8,9 +8,9 @@ Python_add_library(topozero MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(topozero PUBLIC include)
|
target_include_directories(topozero PUBLIC include)
|
||||||
target_link_libraries(topozero PRIVATE
|
target_link_libraries(topozero PRIVATE
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
set_source_files_properties(src/topozero.f90 PROPERTIES COMPILE_OPTIONS -cpp)
|
set_source_files_properties(src/topozero.f90 PROPERTIES COMPILE_OPTIONS -cpp)
|
||||||
if(TARGET OpenMP::OpenMP_Fortran)
|
if(TARGET OpenMP::OpenMP_Fortran)
|
||||||
|
|
|
@ -10,7 +10,7 @@ Python_add_library(snaphu MODULE
|
||||||
)
|
)
|
||||||
target_include_directories(snaphu PUBLIC include)
|
target_include_directories(snaphu PUBLIC include)
|
||||||
target_link_libraries(snaphu PUBLIC
|
target_link_libraries(snaphu PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Python_add_library(libalos2proc MODULE
|
isce2_add_cdll(libalos2proc MODULE
|
||||||
src/rg_filter.c
|
src/rg_filter.c
|
||||||
src/lib_file.c
|
src/lib_file.c
|
||||||
src/lib_cpx.c
|
src/lib_cpx.c
|
||||||
|
|
|
@ -8,12 +8,12 @@ target_include_directories(correct_geoid_i2_srtm PUBLIC
|
||||||
correct_geoid_i2_srtm/include
|
correct_geoid_i2_srtm/include
|
||||||
)
|
)
|
||||||
target_link_libraries(correct_geoid_i2_srtm PUBLIC
|
target_link_libraries(correct_geoid_i2_srtm PUBLIC
|
||||||
DataAccessor_static
|
isce2::DataAccessorLib
|
||||||
stdoel_static
|
isce2::stdoelLib
|
||||||
utilLib
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
Python_add_library(demStitch MODULE
|
isce2_add_cdll(demStitch
|
||||||
demstitcher/bindings/demStitch.c
|
demstitcher/bindings/demStitch.c
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -27,7 +27,9 @@ target_include_directories(upsampledem PRIVATE
|
||||||
upsampledem/include
|
upsampledem/include
|
||||||
)
|
)
|
||||||
target_link_libraries(upsampledem PRIVATE
|
target_link_libraries(upsampledem PRIVATE
|
||||||
utilLib
|
isce2::DataAccessorLib
|
||||||
|
isce2::stdoelLib
|
||||||
|
isce2::utilLib
|
||||||
)
|
)
|
||||||
|
|
||||||
Python_add_library(watermask MODULE
|
Python_add_library(watermask MODULE
|
||||||
|
|
|
@ -7,7 +7,7 @@ target_include_directories(geogrid PRIVATE
|
||||||
)
|
)
|
||||||
target_link_libraries(geogrid PRIVATE
|
target_link_libraries(geogrid PRIVATE
|
||||||
GDAL::GDAL
|
GDAL::GDAL
|
||||||
combinedLib
|
isce2::combinedLib
|
||||||
)
|
)
|
||||||
|
|
||||||
InstallSameDir(
|
InstallSameDir(
|
||||||
|
|
|
@ -2,11 +2,15 @@ InstallSameDir(__init__.py)
|
||||||
|
|
||||||
if(CYTHON_EXECUTABLE AND TARGET GDAL::GDAL)
|
if(CYTHON_EXECUTABLE AND TARGET GDAL::GDAL)
|
||||||
cython_add_module(splitSpectrum
|
cython_add_module(splitSpectrum
|
||||||
pyx/splitRangeSpectrum.pyx
|
pyx/splitSpectrum.pyx
|
||||||
src/splitRangeSpectrum.cc
|
src/splitRangeSpectrum.cc
|
||||||
)
|
)
|
||||||
target_include_directories(splitSpectrum PUBLIC include)
|
target_include_directories(splitSpectrum PUBLIC include)
|
||||||
target_link_libraries(splitSpectrum PUBLIC GDAL::GDAL FFTW::Float OpenMP::OpenMP_CXX)
|
target_link_libraries(splitSpectrum PUBLIC
|
||||||
|
GDAL::GDAL
|
||||||
|
FFTW::FloatThreads
|
||||||
|
OpenMP::OpenMP_CXX
|
||||||
|
)
|
||||||
|
|
||||||
InstallSameDir(splitSpectrum)
|
InstallSameDir(splitSpectrum)
|
||||||
endif()
|
endif()
|
||||||
|
|
Loading…
Reference in New Issue