diff options
| -rw-r--r-- | src/CMakeLists.txt | 3 | ||||
| -rw-r--r-- | src/bin_gie.cmake | 6 | ||||
| -rw-r--r-- | src/iso19111/c_api.cpp | 7 |
3 files changed, 12 insertions, 4 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cc239270..311cdbac 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -72,7 +72,8 @@ if(BUILD_PROJINFO) set(BIN_TARGETS ${BIN_TARGETS} binprojinfo) endif() -if(BUILD_GIE) +# Always build gie if testing is requested +if(BUILD_GIE OR BUILD_TESTING) include(bin_gie.cmake) set(BIN_TARGETS ${BIN_TARGETS} gie) endif() diff --git a/src/bin_gie.cmake b/src/bin_gie.cmake index a26ead3e..6ad7d4ab 100644 --- a/src/bin_gie.cmake +++ b/src/bin_gie.cmake @@ -11,8 +11,10 @@ add_executable(gie ${GIE_SRC} ${GIE_INCLUDE}) target_link_libraries(gie PRIVATE ${PROJ_LIBRARIES}) target_compile_options(gie PRIVATE ${PROJ_CXX_WARN_FLAGS}) -install(TARGETS gie - DESTINATION ${BINDIR}) +if(BUILD_GIE) + install(TARGETS gie + DESTINATION ${BINDIR}) +endif() if(MSVC AND BUILD_SHARED_LIBS) target_compile_definitions(gie PRIVATE PROJ_MSVC_DLL_IMPORT=1) diff --git a/src/iso19111/c_api.cpp b/src/iso19111/c_api.cpp index 9493452c..acf36402 100644 --- a/src/iso19111/c_api.cpp +++ b/src/iso19111/c_api.cpp @@ -8479,7 +8479,12 @@ PJ *proj_crs_get_datum_forced(PJ_CONTEXT *ctx, const PJ *crs) { const auto &datumEnsemble = l_crs->datumEnsemble(); assert(datumEnsemble); auto dbContext = getDBcontextNoException(ctx, __FUNCTION__); - return pj_obj_create(ctx, datumEnsemble->asDatum(dbContext)); + try { + return pj_obj_create(ctx, datumEnsemble->asDatum(dbContext)); + } catch (const std::exception &e) { + proj_log_debug(ctx, __FUNCTION__, e.what()); + return nullptr; + } } // --------------------------------------------------------------------------- |
