@falkamelung noted a race condition in #106 due to non-atomic directory
checking followed by os.makedirs. This pattern exists in many places
in the codebase so I went ahead and replaced the rest of them.
The new exist_ok usage should be terser and more idiomatic.
This commit adds experimental CMake build support for ISCE2.
The only changes involved should be adding CMakeLists.txt files.
All current source files, headers, and other functionality, including
the existing SCons build system, should be unaffected.
Some functionality is still a work-in-progress.
These should all be marked as TODO in the CMakeLists.txt files.
`grep TODO **.txt`
Please read CMakeLists.txt and .cmake/*.cmake for more info.
Recent rubbersheeting changes added scipy and astropy imports which
are not otherwise needed. Due to isce2's eager import behavior this
causes errors when using unrelated functionality. We can fix this
by tucking these imports away inside their function definitions.
To reproduce:
`python3 -c "import isce; from stripmapApp import Insar"`
(without scipy/astropy installed)