diff --git a/CMakeLists.txt b/CMakeLists.txt index 38cc63a..6014de7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,7 +62,7 @@ set(HEADERS unset(EXTRAS) if(TARGET boo) include_directories(${BOO_INCLUDE_DIR} ${BOO_INCLUDE_DIR}/../lib ${BOO_INCLUDE_DIR}/../soxr/src - ${LOGVISOR_INCLUDE_DIR} ${ATHENA_INCLUDE_DIR}) + ${LOGVISOR_INCLUDE_DIR} ${ATHENA_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}) list(APPEND EXTRAS lib/BooBackend.cpp include/amuse/BooBackend.hpp) endif() diff --git a/driver/main.cpp b/driver/main.cpp index bd6d9f7..a82281a 100644 --- a/driver/main.cpp +++ b/driver/main.cpp @@ -568,13 +568,20 @@ struct AppCallback : boo::IApplicationCallback if (m_argc < 2) Log.report(logvisor::Fatal, "needs group path argument"); - amuse::ContainerRegistry::Type cType = amuse::ContainerRegistry::DetectContainerType(m_argv[1]); +#if _WIN32 + char utf8Path[1024]; + WideCharToMultiByte(CP_UTF8, 0, m_argv[1], -1, utf8Path, 1024, nullptr, nullptr); +#else + const char* utf8Path = m_argv[1]; +#endif + + amuse::ContainerRegistry::Type cType = amuse::ContainerRegistry::DetectContainerType(utf8Path); if (cType == amuse::ContainerRegistry::Type::Invalid) Log.report(logvisor::Fatal, "invalid/no data at path argument"); Log.report(logvisor::Info, "Found '%s' Audio Group data", amuse::ContainerRegistry::TypeToName(cType)); std::vector> data = - amuse::ContainerRegistry::LoadContainer(m_argv[1]); + amuse::ContainerRegistry::LoadContainer(utf8Path); if (data.empty()) Log.report(logvisor::Fatal, "invalid/no data at path argument"); diff --git a/include/amuse/Common.hpp b/include/amuse/Common.hpp index 71ee10b..022c33d 100644 --- a/include/amuse/Common.hpp +++ b/include/amuse/Common.hpp @@ -4,9 +4,12 @@ #include #include #include -#include #include +#ifndef _MSC_VER +#include +#endif + namespace amuse {