diff --git a/CMake/CTestCustom.cmake.in b/CMake/CTestCustom.cmake.in index a2416c69f341f60e37c060ce71168ad0adfa2051..9d7cc2ae3132af7fa087f2aac7b5e98b52a3d1f2 100644 --- a/CMake/CTestCustom.cmake.in +++ b/CMake/CTestCustom.cmake.in @@ -62,8 +62,9 @@ set(CTEST_CUSTOM_COVERAGE_EXCLUDE ".*/Utilities/.*" # Exclude SWIG wrappers files - ".*/Modules/Wrappers/SWIG/src/otbApplicationPYTHON_wrap.*" - ".*/Modules/Wrappers/SWIG/src/otbApplicationJAVA_wrap.*" + ".*/Modules/Wrappers/SWIG/src/python/otbApplicationPYTHON_wrap.*" + ".*/Modules/Wrappers/SWIG/src/python3/otbApplicationPYTHON_wrap.*" + ".*/Modules/Wrappers/SWIG/src/java/otbApplicationJAVA_wrap.*" # Exclude Qt moc file ".*moc_.*" diff --git a/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplicationRegistry.cxx b/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplicationRegistry.cxx index bb4e574baedc722ba0e98265159172423f4a8714..f022af0ddbe47d8d7c59415363fff57800151c4f 100644 --- a/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplicationRegistry.cxx +++ b/Modules/Wrappers/ApplicationEngine/src/otbWrapperApplicationRegistry.cxx @@ -375,7 +375,31 @@ ApplicationRegistry::LoadApplicationFromPath(std::string path,std::string name) if (itksys::SystemTools::FileExists(path.c_str(),true)) { - itk::LibHandle lib = itk::DynamicLoader::OpenLibrary(path.c_str()); +#if defined(_WIN32) && !defined(__CYGWIN__) + int cp = CP_UTF8; + int acp = GetACP(); + if (acp != CP_UTF8) + { + bool hasNonAscii=false; + for (auto c: path) + { + if (0 > (int) c) + { + hasNonAscii = true; + break; + } + } + if (hasNonAscii) cp = acp; + } + int length = MultiByteToWideChar(cp, 0, path.c_str(), -1, NULL, 0); + wchar_t* wpath = new wchar_t[length+1]; + wpath[0] = '\0'; + MultiByteToWideChar(cp, 0, path.c_str(), -1, wpath, length); + itk::LibHandle lib = LoadLibraryW(wpath); + delete [] wpath; +#else + itk::LibHandle lib = itksys::DynamicLoader::OpenLibrary(path); +#endif if (lib) { /** @@ -412,6 +436,10 @@ ApplicationRegistry::LoadApplicationFromPath(std::string path,std::string name) } itk::DynamicLoader::CloseLibrary(lib); } + else + { + otbMsgDevMacro( << "Can't load library : " << path << std::endl ); + } } return appli; } diff --git a/Packaging/Files/uninstall_otb.bat b/Packaging/Files/uninstall_otb.bat index 257d2ec730d60a5c20ae5aac8297f33a74096239..3389fd15452785a39f3c88c28a14db8cc70ade30 100644 --- a/Packaging/Files/uninstall_otb.bat +++ b/Packaging/Files/uninstall_otb.bat @@ -1,41 +1,53 @@ -:: -:: Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES) -:: -:: This file is part of Orfeo Toolbox -:: -:: https://www.orfeo-toolbox.org/ -:: -:: 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. - -:: script to uninstall OTB - -setlocal -set CUR_DIR=%~dp0 -cd %CUR_DIR%.. -set MY_INSTALL_DIR=%cd% -del /S /Q %MY_INSTALL_DIR%\include\OTB* || exit 1 -del /S /Q %MY_INSTALL_DIR%\lib\cmake\OTB* || exit 1 -del /S /Q %MY_INSTALL_DIR%\lib\otb* || exit 1 -del /S /Q %MY_INSTALL_DIR%\lib\python\*otbApplication.* || exit 1 -del /S /Q %MY_INSTALL_DIR%\lib\python3\*otbApplication.* || exit 1 -del /S /Q %MY_INSTALL_DIR%\lib\java\org.otb.application.jar || exit 1 -del /S /Q %MY_INSTALL_DIR%\bin\otb* || exit 1 -del /S /Q %MY_INSTALL_DIR%\bin\monteverdi.exe || exit 1 -del /S /Q %MY_INSTALL_DIR%\bin\mapla.exe || exit 1 -del /S /Q %MY_INSTALL_DIR%\mapla.bat || exit 1 -del /S /Q %MY_INSTALL_DIR%\monteverdi.bat || exit 1 -del /S /Q %MY_INSTALL_DIR%\share\OTB* || exit 1 -del /S /Q "%MY_INSTALL_DIR%\OTB Project.zip" || exit 1 -endlocal - - +@echo off +:: +:: Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES) +:: +:: This file is part of Orfeo Toolbox +:: +:: https://www.orfeo-toolbox.org/ +:: +:: 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. + +:: script to uninstall OTB + +setlocal +cd %~dp0%.. + +echo - Clean include\OTB* +for /f %%i in ('dir /b include\OTB*') do rd /S /Q include\%%i + +echo - Clean lib\cmake\OTB* +for /f %%i in ('dir /b lib\cmake\OTB*') do rd /S /Q lib\cmake\%%i + +echo - Clean share\OTB* +for /f %%i in ('dir /b share\OTB*') do rd /S /Q share\%%i + +echo - Clean lib\otb +rd /S /Q lib\otb + +del /S /Q lib\otb* +del /S /Q lib\python\*otbApplication.* || exit 1 +del /S /Q lib\python3\*otbApplication.* || exit 1 +del /S /Q lib\java\org.otb.application.jar || exit 1 +del /S /Q bin\otb* || exit 1 +del /S /Q bin\monteverdi.exe || exit 1 +del /S /Q bin\mapla.exe || exit 1 +del /S /Q mapla.bat || exit 1 +del /S /Q monteverdi.bat || exit 1 +del /S /Q otbenv.* || exit 1 +del /S /Q start_devenv.bat || exit 1 +del /S /Q "OTB Project.zip" || exit 1 + +echo OTB is now uninstalled from %cd% + +endlocal diff --git a/Packaging/Files/uninstall_otb.sh b/Packaging/Files/uninstall_otb.sh index 94ee967a48c3a0f98fad3ce8bb9ba9f57a0c13a5..1b5030c58adc09ee1e21c653941fc263397bddd4 100755 --- a/Packaging/Files/uninstall_otb.sh +++ b/Packaging/Files/uninstall_otb.sh @@ -22,8 +22,10 @@ set -e rm -fr OUT_DIR/include/OTB-* rm -f OUT_DIR/lib/{libotb*,libOTB*} rm -fr OUT_DIR/lib/{otb,python/*otbApplication*,python3/*otbApplication*,java/org.otb.application.jar} +rm -fr OUT_DIR/lib/cmake/OTB-* rm -fr OUT_DIR/share/OTB* rm -fv OUT_DIR/bin/{otb*,monteverdi,mapla} rm -fv OUT_DIR/{mapla.sh,monteverdi.sh} +rm -fv OUT_DIR/otbenv.* echo "OTB is now uninstalled from OUT_DIR"