diff options
author | Rob Hughes <robert.hughes@arm.com> | 2019-08-23 10:11:58 +0100 |
---|---|---|
committer | Rob Hughes <robert.hughes@arm.com> | 2019-08-23 09:16:16 +0000 |
commit | 91e1d89ad35ad081a4d5995d541791fbefdb3060 (patch) | |
tree | 57022df335b5ccd38aa697394f97d12e6bfd3db5 /src/backends/backendsCommon/DynamicBackendUtils.cpp | |
parent | 1cd451cdd818e7df83cf60935abc54345fbc40e6 (diff) | |
download | armnn-91e1d89ad35ad081a4d5995d541791fbefdb3060.tar.gz |
Fix Windows build:
* CMake "install" commands require a RUNTIME argument for platforms with
DLLs (e.g. Windows).
* Replace use of non-standard variable length array with vector
* Remove unnecessary #include of unistd.h
* Add #ifdefs to dynamic backend code to disable for non-Unix platforms
where you can't use dlopen etc. We could implement this properly for Windows
later using LoadLibrary etc., but for now erroring is fine.
* Add missing #include of <algorithm>
Change-Id: Ic8ef5fd599b37bf8772510157b6e479819f6a1eb
Diffstat (limited to 'src/backends/backendsCommon/DynamicBackendUtils.cpp')
-rw-r--r-- | src/backends/backendsCommon/DynamicBackendUtils.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/backends/backendsCommon/DynamicBackendUtils.cpp b/src/backends/backendsCommon/DynamicBackendUtils.cpp index fc4336f4ac..da7c3244f1 100644 --- a/src/backends/backendsCommon/DynamicBackendUtils.cpp +++ b/src/backends/backendsCommon/DynamicBackendUtils.cpp @@ -16,6 +16,7 @@ namespace armnn void* DynamicBackendUtils::OpenHandle(const std::string& sharedObjectPath) { +#if defined(__unix__) if (sharedObjectPath.empty()) { throw RuntimeException("OpenHandle error: shared object path must not be empty"); @@ -28,16 +29,23 @@ void* DynamicBackendUtils::OpenHandle(const std::string& sharedObjectPath) } return sharedObjectHandle; +#else + throw RuntimeException("Dynamic backends not supported on this platform"); +#endif } void DynamicBackendUtils::CloseHandle(const void* sharedObjectHandle) { +#if defined(__unix__) if (!sharedObjectHandle) { return; } dlclose(const_cast<void*>(sharedObjectHandle)); +#else + throw RuntimeException("Dynamic backends not supported on this platform"); +#endif } bool DynamicBackendUtils::IsBackendCompatible(const BackendVersion &backendVersion) @@ -56,6 +64,7 @@ bool DynamicBackendUtils::IsBackendCompatibleImpl(const BackendVersion &backendA std::string DynamicBackendUtils::GetDlError() { +#if defined(__unix__) const char* errorMessage = dlerror(); if (!errorMessage) { @@ -63,6 +72,9 @@ std::string DynamicBackendUtils::GetDlError() } return std::string(errorMessage); +#else + throw RuntimeException("Dynamic backends not supported on this platform"); +#endif } std::vector<std::string> DynamicBackendUtils::GetBackendPaths(const std::string& overrideBackendPath) |