mirror of https://github.com/microsoft/vcpkg.git
[aui]: add new port (#53508)
This commit is contained in:
parent
6aed839547
commit
a804accb28
|
|
@ -0,0 +1,193 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6902d56..d1d37e1 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -64,9 +64,7 @@ function(define_aui_component AUI_COMPONENT_NAME)
|
||||
add_subdirectory("aui.${AUI_COMPONENT_NAME}")
|
||||
endfunction()
|
||||
|
||||
-auib_import(ZLIB https://github.com/aui-framework/zlib
|
||||
- VERSION 448a9c76a97202a21f68bd82e453dd743e944a3a
|
||||
- CMAKE_ARGS -DZLIB_BUILD_EXAMPLES=OFF)
|
||||
+find_package(ZLIB REQUIRED)
|
||||
|
||||
# define all components
|
||||
define_aui_component(core)
|
||||
@@ -86,7 +84,7 @@ define_aui_component(json)
|
||||
define_aui_component(audio)
|
||||
define_aui_component(updater)
|
||||
|
||||
-if (NOT ANDROID AND NOT IOS)
|
||||
+if (0)
|
||||
define_aui_component(uitests)
|
||||
endif()
|
||||
|
||||
@@ -195,7 +193,6 @@ auib_precompiled_binary()
|
||||
# [auib_precompiled_binary]
|
||||
|
||||
# test aui.boot on ci/cd
|
||||
-add_subdirectory(test/)
|
||||
|
||||
# [configure file example]
|
||||
configure_file(cmake/aui-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/aui-config.cmake @ONLY)
|
||||
diff --git a/aui.core/CMakeLists.txt b/aui.core/CMakeLists.txt
|
||||
index 6aa1b07..0eaa67f 100644
|
||||
--- a/aui.core/CMakeLists.txt
|
||||
+++ b/aui.core/CMakeLists.txt
|
||||
@@ -11,9 +11,8 @@ aui_enable_benchmarks(aui.core)
|
||||
|
||||
|
||||
get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
-if (GLM_INCLUDE_DIR)
|
||||
- message(STATUS "Using custom GLM_INCLUDE_DIR: ${GLM_INCLUDE_DIR}")
|
||||
-else()
|
||||
+find_package(glm REQUIRED)
|
||||
+if (0) # vendored glm replaced by vcpkg's glm
|
||||
set(GLM_INCLUDE_DIR "${SELF_DIR}/3rdparty/glm")
|
||||
|
||||
install(
|
||||
@@ -21,7 +20,8 @@ else()
|
||||
DESTINATION "aui.core/include/"
|
||||
)
|
||||
endif()
|
||||
-target_include_directories(aui.core PUBLIC $<BUILD_INTERFACE:${GLM_INCLUDE_DIR}>)
|
||||
+target_link_libraries(aui.core PUBLIC glm::glm-header-only)
|
||||
+target_compile_definitions(aui.core PUBLIC GLM_ENABLE_EXPERIMENTAL=1)
|
||||
|
||||
target_compile_definitions(aui.core PRIVATE UNICODE=1)
|
||||
target_compile_definitions(aui.core PUBLIC NOMINMAX=1)
|
||||
@@ -49,8 +49,7 @@ if (NOT WIN32)
|
||||
endif()
|
||||
|
||||
if (AUI_PLATFORM_LINUX)
|
||||
- auib_import(backtrace https://github.com/aui-framework/libbacktrace
|
||||
- VERSION a5a32e3cc8e22a9fc40689a884b032c52ee3f88e)
|
||||
+ find_package(unofficial-libbacktrace CONFIG REQUIRED)
|
||||
set(_use_backtrace TRUE)
|
||||
else()
|
||||
|
||||
@@ -84,7 +83,7 @@ endif()
|
||||
|
||||
if(_use_backtrace)
|
||||
message(STATUS "Stacktrace backend: backtrace")
|
||||
- aui_link(aui.core PRIVATE backtrace)
|
||||
+ aui_link(aui.core PRIVATE unofficial::libbacktrace::libbacktrace)
|
||||
target_compile_definitions(aui.core PRIVATE AUI_USE_BACKTRACE=1)
|
||||
elseif(_use_unwind)
|
||||
message(STATUS "Stacktrace backend: unwind")
|
||||
@@ -111,7 +110,12 @@ if (ANDROID)
|
||||
endif()
|
||||
|
||||
aui_link(aui.core PRIVATE ZLIB::ZLIB)
|
||||
-add_subdirectory(3rdparty/minizip)
|
||||
+find_package(minizip CONFIG REQUIRED)
|
||||
+if(TARGET MINIZIP::minizip)
|
||||
+ aui_link(aui.core PRIVATE MINIZIP::minizip)
|
||||
+else()
|
||||
+ aui_link(aui.core PRIVATE MINIZIP::minizipstatic)
|
||||
+endif()
|
||||
|
||||
# forward platform info
|
||||
foreach(_var AUI_PLATFORM_WIN
|
||||
@@ -147,13 +151,9 @@ endif()
|
||||
|
||||
|
||||
# [auib_import examples]
|
||||
-auib_import(fmt https://github.com/fmtlib/fmt
|
||||
- VERSION 9.1.0
|
||||
- CMAKE_ARGS -DFMT_TEST=FALSE -DFMT_DOC=FALSE)
|
||||
+find_package(fmt CONFIG REQUIRED)
|
||||
|
||||
-auib_import(range-v3 https://github.com/ericniebler/range-v3
|
||||
- VERSION 0.12.0
|
||||
- CMAKE_ARGS -DRANGE_V3_DOCS=OFF -DRANGE_V3_TESTS=OFF -DRANGE_V3_EXAMPLES=OFF -DRANGE_V3_PERF=OFF -DRANGE_V3_HEADER_CHECKS=OFF)
|
||||
+find_package(range-v3 CONFIG REQUIRED)
|
||||
# [auib_import examples]
|
||||
|
||||
aui_link(aui.core PUBLIC fmt::fmt-header-only range-v3::range-v3)
|
||||
diff --git a/aui.crypt/CMakeLists.txt b/aui.crypt/CMakeLists.txt
|
||||
index c5354f2..778d45e 100644
|
||||
--- a/aui.crypt/CMakeLists.txt
|
||||
+++ b/aui.crypt/CMakeLists.txt
|
||||
@@ -1,9 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
|
||||
-unset(OPENSSL_CRYPTO_LIBRARY CACHE)
|
||||
-unset(OPENSSL_SSL_LIBRARY CACHE)
|
||||
-auib_import(OpenSSL https://github.com/aui-framework/openssl-cmake/archive/56ee19b7e11b418e0f29825414abdca96ff6b83e.zip ARCHIVE)
|
||||
+find_package(OpenSSL REQUIRED)
|
||||
|
||||
aui_module(aui.crypt EXPORT aui)
|
||||
aui_enable_tests(aui.crypt)
|
||||
diff --git a/aui.image/CMakeLists.txt b/aui.image/CMakeLists.txt
|
||||
index 033e7ad..a6f292c 100644
|
||||
--- a/aui.image/CMakeLists.txt
|
||||
+++ b/aui.image/CMakeLists.txt
|
||||
@@ -1,18 +1,13 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
-auib_import(lunasvg https://github.com/aui-framework/lunasvg
|
||||
- VERSION 272ceee)
|
||||
+find_package(lunasvg CONFIG REQUIRED)
|
||||
|
||||
|
||||
-set(WEBP_COMPONENTS_TO_DISABLE ANIM_UTILS CWEBP DWEBP GIF2WEBP IMG2WEBP VWEBP WEBPINFO LIBWEBPMUX WEBPMUX EXTRAS)
|
||||
-
|
||||
-foreach(_component ${WEBP_COMPONENTS_TO_DISABLE})
|
||||
- list(APPEND WEBP_CMAKE_ARGS "-DWEBP_BUILD_${_component}=OFF")
|
||||
-endforeach()
|
||||
-
|
||||
-auib_import(WebP https://github.com/webmproject/libwebp VERSION 1.3.1 CMAKE_ARGS ${WEBP_CMAKE_ARGS})
|
||||
+find_package(WebP CONFIG REQUIRED)
|
||||
|
||||
aui_module(aui.image WHOLEARCHIVE EXPORT aui)
|
||||
-add_subdirectory(3rdparty)
|
||||
-aui_link(aui.image PRIVATE aui::core lunasvg::lunasvg WebP::webp WebP::webpdemux)
|
||||
+find_package(unofficial-libnsgif CONFIG REQUIRED)
|
||||
+find_package(Stb REQUIRED)
|
||||
+aui_link(aui.image PRIVATE aui::core lunasvg::lunasvg WebP::webp WebP::webpdemux unofficial::libnsgif::nsgif)
|
||||
+target_include_directories(aui.image PRIVATE ${Stb_INCLUDE_DIR})
|
||||
aui_enable_tests(aui.image)
|
||||
diff --git a/aui.image/src/AUI/Image/gif/GifImageFactory.cpp b/aui.image/src/AUI/Image/gif/GifImageFactory.cpp
|
||||
index e9ca38f..4597d68 100644
|
||||
--- a/aui.image/src/AUI/Image/gif/GifImageFactory.cpp
|
||||
+++ b/aui.image/src/AUI/Image/gif/GifImageFactory.cpp
|
||||
@@ -17,7 +17,9 @@
|
||||
#include "AUI/Image/AImage.h"
|
||||
#include "AUI/Util/ARaiiHelper.h"
|
||||
#include "AUI/Logging/ALogger.h"
|
||||
-#include "nsgif.h"
|
||||
+extern "C" {
|
||||
+#include <nsgif.h>
|
||||
+}
|
||||
|
||||
static nsgif_bitmap_t* create_callback(int width, int height) {
|
||||
return new char[4 * width * height];
|
||||
diff --git a/cmake/aui.build.cmake b/cmake/aui.build.cmake
|
||||
index 90c53d4..7a8e8e8 100644
|
||||
--- a/cmake/aui.build.cmake
|
||||
+++ b/cmake/aui.build.cmake
|
||||
@@ -1072,18 +1072,18 @@ function(aui_module AUI_MODULE_NAME)
|
||||
ARCHIVE DESTINATION "lib"
|
||||
LIBRARY DESTINATION "lib"
|
||||
RUNTIME DESTINATION "bin"
|
||||
- PUBLIC_HEADER DESTINATION "${AUI_MODULE_NAME}/include"
|
||||
- INCLUDES DESTINATION "${AUI_MODULE_NAME}/include"
|
||||
+ PUBLIC_HEADER DESTINATION "include"
|
||||
+ INCLUDES DESTINATION "include"
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY src/
|
||||
- DESTINATION "${AUI_MODULE_NAME}/include/"
|
||||
+ DESTINATION "include/"
|
||||
FILES_MATCHING PATTERN "*.h"
|
||||
PATTERN "*.hpp"
|
||||
|
||||
)
|
||||
- target_include_directories(${AUI_MODULE_NAME} INTERFACE $<INSTALL_INTERFACE:${AUI_MODULE_NAME}/include/>)
|
||||
+ target_include_directories(${AUI_MODULE_NAME} INTERFACE $<INSTALL_INTERFACE:include>)
|
||||
endif()
|
||||
if (NOT BUILD_AS_IMPORTED_NAME STREQUAL ${AUI_MODULE_NAME})
|
||||
add_library(${BUILD_AS_IMPORTED_NAME} ALIAS ${AUI_MODULE_NAME})
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
diff --git a/aui.boot.cmake b/aui.boot.cmake
|
||||
index 6baab15..72a838b 100644
|
||||
--- a/aui.boot.cmake
|
||||
+++ b/aui.boot.cmake
|
||||
@@ -204,13 +204,13 @@ endif()
|
||||
|
||||
|
||||
# create all required dirs
|
||||
-if (NOT EXISTS ${AUIB_CACHE_DIR})
|
||||
+if (0)
|
||||
file(MAKE_DIRECTORY ${AUIB_CACHE_DIR})
|
||||
endif()
|
||||
-if (NOT EXISTS ${AUIB_CACHE_DIR}/prefix)
|
||||
+if (0)
|
||||
file(MAKE_DIRECTORY ${AUIB_CACHE_DIR}/prefix)
|
||||
endif()
|
||||
-if (NOT EXISTS ${AUIB_CACHE_DIR}/repo)
|
||||
+if (0)
|
||||
file(MAKE_DIRECTORY ${AUIB_CACHE_DIR}/repo)
|
||||
endif()
|
||||
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/cmake/aui.build.cmake b/cmake/aui.build.cmake
|
||||
index 90c53d45..c741359d 100644
|
||||
--- a/cmake/aui.build.cmake
|
||||
+++ b/cmake/aui.build.cmake
|
||||
@@ -230,7 +230,7 @@ macro(_aui_import_gtest)
|
||||
endmacro()
|
||||
|
||||
macro(aui_enable_tests AUI_MODULE_NAME)
|
||||
- if (NOT CMAKE_CROSSCOMPILING)
|
||||
+ if (0)
|
||||
_aui_import_gtest()
|
||||
if (NOT TARGET GTest::gtest)
|
||||
message(FATAL_ERROR "GTest::gtest not found!")
|
||||
@@ -328,7 +328,7 @@ macro(_aui_import_google_benchmark)
|
||||
endmacro()
|
||||
|
||||
macro(aui_enable_benchmarks AUI_MODULE_NAME)
|
||||
- if (NOT CMAKE_CROSSCOMPILING)
|
||||
+ if (0)
|
||||
_aui_import_gtest()
|
||||
_aui_import_google_benchmark()
|
||||
if (NOT TARGET benchmark::benchmark)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/cmake/aui.build.cmake b/cmake/aui.build.cmake
|
||||
index 90c53d4..780c872 100644
|
||||
--- a/cmake/aui.build.cmake
|
||||
+++ b/cmake/aui.build.cmake
|
||||
@@ -140,7 +140,7 @@ else()
|
||||
set(AUI_COMPILER_MSVC 0 CACHE INTERNAL "Compiler")
|
||||
endif()
|
||||
|
||||
-if (CMAKE_GENERATOR_PLATFORM MATCHES "(arm64)|(ARM64)" OR CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64)")
|
||||
+if (CMAKE_GENERATOR_PLATFORM MATCHES "(aarch64|arm64|AARCH64|ARM64)" OR CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|AARCH64|ARM64)")
|
||||
set(AUI_ARCH_X86_64 0 CACHE INTERNAL "Arch")
|
||||
set(AUI_ARCH_X86 0 CACHE INTERNAL "Arch")
|
||||
set(AUI_ARCH_ARM_64 1 CACHE INTERNAL "Arch")
|
||||
|
|
@ -0,0 +1,196 @@
|
|||
diff --git a/aui.core/src/AUI/Common/AByteBufferView.h b/aui.core/src/AUI/Common/AByteBufferView.h
|
||||
index 0f82653..176170c 100644
|
||||
--- a/aui.core/src/AUI/Common/AByteBufferView.h
|
||||
+++ b/aui.core/src/AUI/Common/AByteBufferView.h
|
||||
@@ -116,8 +116,13 @@ public:
|
||||
inline std::ostream& operator<<(std::ostream& lhs, const AByteBufferView& rhs) {
|
||||
lhs << "[";
|
||||
for (const auto b : rhs) {
|
||||
- char buf[8];
|
||||
+ char buf[16];
|
||||
+ #if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
lhs.write(buf, std::distance(std::begin(buf), fmt::format_to(buf, " {:02x}", b)));
|
||||
+ #else
|
||||
+ auto end = fmt::format_to(buf, " {:02x}", static_cast<uint8_t>(b));
|
||||
+ lhs.write(buf, end - buf);
|
||||
+ #endif
|
||||
}
|
||||
lhs << " ]";
|
||||
|
||||
diff --git a/aui.core/src/AUI/Common/AString.h b/aui.core/src/AUI/Common/AString.h
|
||||
index cbf9d12..2623866 100644
|
||||
--- a/aui.core/src/AUI/Common/AString.h
|
||||
+++ b/aui.core/src/AUI/Common/AString.h
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
+#include <cstring>
|
||||
#include "AUI/Core.h"
|
||||
#include "AUI/Traits/values.h"
|
||||
#include <AUI/Common/ASet.h>
|
||||
@@ -839,7 +840,9 @@ namespace aui::win32 {
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
template <> struct fmt::detail::is_string<AString>: std::false_type {};
|
||||
+#endif
|
||||
|
||||
template <> struct fmt::formatter<AString>: fmt::formatter<std::string> {
|
||||
auto format(const AString& s, format_context& ctx) const {
|
||||
diff --git a/aui.core/src/AUI/Traits/strings.h b/aui.core/src/AUI/Traits/strings.h
|
||||
index ef92c34..7d5d5d7 100644
|
||||
--- a/aui.core/src/AUI/Traits/strings.h
|
||||
+++ b/aui.core/src/AUI/Traits/strings.h
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "types.h"
|
||||
|
||||
#include <fmt/format.h>
|
||||
+#include <fmt/ranges.h>
|
||||
|
||||
namespace aui {
|
||||
|
||||
diff --git a/aui.curl/src/AUI/Curl/ACurlMulti.cpp b/aui.curl/src/AUI/Curl/ACurlMulti.cpp
|
||||
index f6faf9b..b6774cc 100644
|
||||
--- a/aui.curl/src/AUI/Curl/ACurlMulti.cpp
|
||||
+++ b/aui.curl/src/AUI/Curl/ACurlMulti.cpp
|
||||
@@ -53,7 +53,11 @@ void ACurlMulti::run(bool infinite) {
|
||||
AThread::interruptionPoint();
|
||||
|
||||
if (status) {
|
||||
+ #if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
throw ACurl::Exception("curl poll failed: {}"_format(status));
|
||||
+ #else
|
||||
+ throw ACurl::Exception(fmt::format("curl poll failed: {}", static_cast<int>(status)));
|
||||
+ #endif
|
||||
}
|
||||
|
||||
int messagesLeft;
|
||||
diff --git a/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp b/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp
|
||||
index 0847241..58f6e0f 100644
|
||||
--- a/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp
|
||||
+++ b/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp
|
||||
@@ -95,7 +95,11 @@ _<AST> Parser::parseShader() {
|
||||
break;
|
||||
|
||||
default:
|
||||
+ #if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
reportUnexpectedErrorAndSkip("expected using, class, struct, input, output, inter, uniform, entry keywords"_format(keywordType));
|
||||
+ #else
|
||||
+ reportUnexpectedErrorAndSkip(fmt::format("expected using, class, struct, input, output, inter, uniform, entry keywords {}", keywordType));
|
||||
+ #endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
diff --git a/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h b/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h
|
||||
index c75dc8b..bdebaae 100644
|
||||
--- a/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h
|
||||
+++ b/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h
|
||||
@@ -101,4 +101,10 @@ public:
|
||||
static Type fromName(const AString& name);
|
||||
};
|
||||
|
||||
-
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <> struct fmt::formatter<KeywordToken::Type> : fmt::formatter<const char*> {
|
||||
+ auto format(KeywordToken::Type type, fmt::format_context& ctx) const {
|
||||
+ return fmt::formatter<const char*>::format(KeywordToken(type).getName(), ctx);
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
diff --git a/aui.views/src/AUI/ASS/Property/Opacity.h b/aui.views/src/AUI/ASS/Property/Opacity.h
|
||||
index 53d4786..dfde6ce 100644
|
||||
--- a/aui.views/src/AUI/ASS/Property/Opacity.h
|
||||
+++ b/aui.views/src/AUI/ASS/Property/Opacity.h
|
||||
@@ -19,6 +19,15 @@
|
||||
#include <AUI/Common/IStringable.h>
|
||||
#include "IProperty.h"
|
||||
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <> struct fmt::formatter<aui::float_within_0_1> : fmt::formatter<float> {
|
||||
+ auto format(const aui::float_within_0_1& v, fmt::format_context& ctx) const {
|
||||
+ return fmt::formatter<float>::format(static_cast<float>(v), ctx);
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
namespace ass {
|
||||
|
||||
/**
|
||||
diff --git a/aui.views/src/AUI/ASS/unset.h b/aui.views/src/AUI/ASS/unset.h
|
||||
index 62a2fb8..fa5780c 100644
|
||||
--- a/aui.views/src/AUI/ASS/unset.h
|
||||
+++ b/aui.views/src/AUI/ASS/unset.h
|
||||
@@ -182,4 +182,28 @@ std::ostream& operator<<(std::ostream& o, const ass::unset_wrap<T>& wrap) {
|
||||
o << "<unset>";
|
||||
}
|
||||
return o;
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
+
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <typename T, typename Char>
|
||||
+struct fmt::formatter<ass::unset_wrap<T>, Char> {
|
||||
+ fmt::formatter<T, Char> inner;
|
||||
+
|
||||
+ // Parse format specs like {:>10}, {:.2f}, etc.
|
||||
+ template<typename ParseContext>
|
||||
+ constexpr auto parse(ParseContext& ctx) {
|
||||
+ return inner.parse(ctx);
|
||||
+ }
|
||||
+
|
||||
+ // Format either the value (if set) or the "<unset>" fallback
|
||||
+ template<typename FormatContext>
|
||||
+ auto format(const ass::unset_wrap<T>& value, FormatContext& ctx) const {
|
||||
+ if (value) {
|
||||
+ return inner.format(*value, ctx);
|
||||
+ } else {
|
||||
+ static constexpr auto fallback = std::basic_string_view<Char>(FMT_STRING("<unset>"));
|
||||
+ return fmt::format_to(ctx.out(), "{}", fallback);
|
||||
+ }
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
diff --git a/aui.views/src/AUI/Util/AMetric.h b/aui.views/src/AUI/Util/AMetric.h
|
||||
index 84a5ec1..f58e160 100644
|
||||
--- a/aui.views/src/AUI/Util/AMetric.h
|
||||
+++ b/aui.views/src/AUI/Util/AMetric.h
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <ostream>
|
||||
#include <tuple>
|
||||
#include "AUI/Util/Assert.h"
|
||||
+#include <fmt/format.h>
|
||||
|
||||
class AString;
|
||||
|
||||
@@ -259,4 +260,25 @@ inline std::ostream& operator<<(std::ostream& o, const AMetric& value) {
|
||||
break;
|
||||
}
|
||||
return o;
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
+
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <> struct fmt::formatter<AMetric> {
|
||||
+ constexpr auto parse(format_parse_context& ctx) {
|
||||
+ return ctx.begin(); // No custom formatting options needed
|
||||
+ }
|
||||
+
|
||||
+ template <typename FormatContext>
|
||||
+ auto format(const AMetric& metric, FormatContext& ctx) const {
|
||||
+ std::string_view suffix;
|
||||
+ switch (metric.getUnit()) {
|
||||
+ case AMetric::T_PX: suffix = "px"; break;
|
||||
+ case AMetric::T_DP: suffix = "dp"; break;
|
||||
+ case AMetric::T_PT: suffix = "pt"; break;
|
||||
+ default: suffix = ""; break;
|
||||
+ }
|
||||
+
|
||||
+ return fmt::format_to(ctx.out(), "{}{}", metric.getRawValue(), suffix);
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO aui-framework/aui
|
||||
REF "v${VERSION}"
|
||||
SHA512 decac6cebb6003791896e8d7a9fd7334351aa30205eac787cdbb51d1da657cda140178e0b8f5d236b42a4c1f37633141fb869784e5fc5c9718b5396e077afe7d
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
debundle.patch
|
||||
disable-tests.patch
|
||||
disable-auib.patch
|
||||
fix-fmt12.patch
|
||||
fix-arm64.patch
|
||||
)
|
||||
|
||||
file(REMOVE_RECURSE "${SOURCE_PATH}/aui.audio/3rdparty" "${SOURCE_PATH}/aui.core/3rdparty" "${SOURCE_PATH}/aui.image/3rdparty" "${SOURCE_PATH}/aui.sqlite/3rdparty")
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DAUIB_COMPONENTS=toolbox
|
||||
-DAUI_INSTALL_RUNTIME_DEPENDENCIES=OFF
|
||||
-DAUIB_NO_PRECOMPILED=TRUE
|
||||
-DAUIB_DISABLE=ON
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/aui.toolbox${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
|
||||
vcpkg_copy_tools(TOOL_NAMES aui.toolbox AUTO_CLEAN)
|
||||
endif()
|
||||
file(GLOB _aui_toolbox_leftovers "${CURRENT_PACKAGES_DIR}/*")
|
||||
foreach(_entry IN LISTS _aui_toolbox_leftovers)
|
||||
if(NOT _entry STREQUAL "${CURRENT_PACKAGES_DIR}/tools" AND NOT _entry STREQUAL "${CURRENT_PACKAGES_DIR}/share")
|
||||
file(REMOVE_RECURSE "${_entry}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/aui-toolbox")
|
||||
file(WRITE "${CURRENT_PACKAGES_DIR}/share/aui-toolbox/aui-toolbox-config.cmake"
|
||||
[=[
|
||||
get_filename_component(_aui_toolbox_root "${CMAKE_CURRENT_LIST_DIR}/../.." ABSOLUTE)
|
||||
find_program(AUI_TOOLBOX_EXE NAMES aui.toolbox
|
||||
HINTS
|
||||
"${_aui_toolbox_root}/tools/aui-toolbox"
|
||||
"${_aui_toolbox_root}/tools/aui"
|
||||
"${_aui_toolbox_root}/bin"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(AUI_TOOLBOX_EXE)
|
||||
set(aui-toolbox_FOUND TRUE)
|
||||
else()
|
||||
set(aui-toolbox_FOUND FALSE)
|
||||
endif()
|
||||
]=])
|
||||
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
{
|
||||
"name": "aui-toolbox",
|
||||
"version": "7.1.2",
|
||||
"description": "Host-side asset and shader compiler (aui.toolbox) for the AUI declarative UI toolkit",
|
||||
"homepage": "https://github.com/aui-framework/aui",
|
||||
"license": "MPL-2.0",
|
||||
"supports": "native & !(linux & arm64)",
|
||||
"dependencies": [
|
||||
"fmt",
|
||||
"glm",
|
||||
{
|
||||
"name": "libbacktrace",
|
||||
"platform": "linux"
|
||||
},
|
||||
"libnsgif",
|
||||
"libwebp",
|
||||
"lunasvg",
|
||||
"minizip",
|
||||
"openssl",
|
||||
"range-v3",
|
||||
"stb",
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
"zlib"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,322 @@
|
|||
get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
get_filename_component(AUI_ROOT_DIR "${SELF_DIR}/../.." ABSOLUTE)
|
||||
|
||||
@AUI_CONFIG_VARS@
|
||||
@AUIB_DEPS@
|
||||
|
||||
include(CMakeFindDependencyMacro)
|
||||
|
||||
if (NOT AUI_FIND_COMPONENTS)
|
||||
set(AUI_FIND_COMPONENTS ${aui_FIND_COMPONENTS})
|
||||
endif()
|
||||
|
||||
if (NOT AUI_FIND_COMPONENTS)
|
||||
set(AUI_FIND_COMPONENTS ${AUI_AVAILABLE_COMPONENTS})
|
||||
set(_all TRUE)
|
||||
else()
|
||||
if (views IN_LIST AUI_FIND_COMPONENTS)
|
||||
list(APPEND AUI_FIND_COMPONENTS xml image)
|
||||
endif()
|
||||
list(REMOVE_DUPLICATES AUI_FIND_COMPONENTS)
|
||||
endif()
|
||||
|
||||
set(_aui_needed_targets "")
|
||||
foreach(_module ${AUI_FIND_COMPONENTS})
|
||||
if(NOT DEFINED AUI_COMPONENT_${_module}_LINK_LIBS)
|
||||
continue()
|
||||
endif()
|
||||
foreach(_dep IN LISTS AUI_COMPONENT_${_module}_LINK_LIBS)
|
||||
string(REGEX REPLACE "^\\\$<LINK_ONLY:(.*)>$" "\\1" _dep_target "${_dep}")
|
||||
if(_dep_target MATCHES "::" AND NOT _dep_target MATCHES "^aui::")
|
||||
list(APPEND _aui_needed_targets "${_dep_target}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
list(REMOVE_DUPLICATES _aui_needed_targets)
|
||||
|
||||
foreach(_target IN LISTS _aui_needed_targets)
|
||||
if(TARGET "${_target}")
|
||||
continue()
|
||||
endif()
|
||||
if(_target MATCHES "^glm::")
|
||||
find_dependency(glm CONFIG)
|
||||
elseif(_target MATCHES "^fmt::")
|
||||
find_dependency(fmt CONFIG)
|
||||
elseif(_target MATCHES "^range-v3::")
|
||||
find_dependency(range-v3 CONFIG)
|
||||
elseif(_target STREQUAL "ZLIB::ZLIB")
|
||||
find_dependency(ZLIB)
|
||||
elseif(_target MATCHES "^Ogg::")
|
||||
find_dependency(Ogg CONFIG)
|
||||
elseif(_target MATCHES "^Vorbis::")
|
||||
find_dependency(Vorbis CONFIG)
|
||||
elseif(_target STREQUAL "Threads::Threads")
|
||||
find_dependency(Threads)
|
||||
elseif(_target STREQUAL "unofficial::libbacktrace::libbacktrace")
|
||||
find_dependency(unofficial-libbacktrace CONFIG)
|
||||
elseif(_target MATCHES "^unofficial::libnsgif::")
|
||||
find_dependency(unofficial-libnsgif CONFIG)
|
||||
elseif(_target MATCHES "^unofficial::sqlite3::")
|
||||
find_dependency(unofficial-sqlite3 CONFIG)
|
||||
elseif(_target MATCHES "^OpenSSL::")
|
||||
find_dependency(OpenSSL)
|
||||
elseif(_target MATCHES "^CURL::")
|
||||
find_dependency(CURL)
|
||||
elseif(_target MATCHES "^lunasvg::")
|
||||
find_dependency(lunasvg CONFIG)
|
||||
elseif(_target MATCHES "^MINIZIP::")
|
||||
find_dependency(minizip CONFIG)
|
||||
elseif(_target MATCHES "^WebP::")
|
||||
find_dependency(WebP CONFIG)
|
||||
elseif(_target MATCHES "^GLEW::")
|
||||
find_dependency(GLEW CONFIG)
|
||||
elseif(_target STREQUAL "Freetype::Freetype")
|
||||
find_dependency(Freetype)
|
||||
elseif(_target MATCHES "^X11::")
|
||||
find_dependency(X11)
|
||||
elseif(_target STREQUAL "Fontconfig::Fontconfig")
|
||||
find_dependency(Fontconfig)
|
||||
elseif(_target MATCHES "^OpenGL::")
|
||||
find_dependency(OpenGL)
|
||||
elseif(_target MATCHES "^oboe::" OR _target STREQUAL "oboe")
|
||||
find_path(OBOE_INCLUDE_DIR NAMES oboe/Oboe.h REQUIRED)
|
||||
find_library(OBOE_LIBRARY NAMES oboe REQUIRED)
|
||||
if(NOT TARGET oboe::oboe)
|
||||
add_library(oboe::oboe UNKNOWN IMPORTED)
|
||||
set_target_properties(oboe::oboe PROPERTIES
|
||||
IMPORTED_LOCATION "${OBOE_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${OBOE_INCLUDE_DIR}"
|
||||
)
|
||||
endif()
|
||||
elseif(_target MATCHES "^PkgConfig::")
|
||||
if(NOT DEFINED PKG_CONFIG_FOUND)
|
||||
find_package(PkgConfig QUIET)
|
||||
endif()
|
||||
if(NOT PKG_CONFIG_FOUND)
|
||||
continue()
|
||||
endif()
|
||||
set(_aui_pkgconfig_name "")
|
||||
if(_target STREQUAL "PkgConfig::PulseAudio")
|
||||
set(_aui_pkgconfig_name libpulse)
|
||||
elseif(_target STREQUAL "PkgConfig::PulseAudioSimple")
|
||||
set(_aui_pkgconfig_name libpulse-simple)
|
||||
elseif(_target STREQUAL "PkgConfig::Opus")
|
||||
set(_aui_pkgconfig_name opus)
|
||||
elseif(_target STREQUAL "PkgConfig::soxr")
|
||||
set(_aui_pkgconfig_name soxr)
|
||||
elseif(_target STREQUAL "PkgConfig::DBUS")
|
||||
set(_aui_pkgconfig_name dbus-1)
|
||||
elseif(_target STREQUAL "PkgConfig::GTK3")
|
||||
set(_aui_pkgconfig_name gtk+-3.0)
|
||||
endif()
|
||||
if(_aui_pkgconfig_name)
|
||||
string(REPLACE "PkgConfig::" "" _aui_pkgconfig_prefix "${_target}")
|
||||
if(NOT TARGET "PkgConfig::${_aui_pkgconfig_prefix}")
|
||||
if(DEFINED ENV{PKG_CONFIG_PATH})
|
||||
set(_aui_prev_pkg_config_path "$ENV{PKG_CONFIG_PATH}")
|
||||
else()
|
||||
unset(_aui_prev_pkg_config_path)
|
||||
endif()
|
||||
set(ENV{PKG_CONFIG_PATH} "${AUI_ROOT_DIR}/lib/pkgconfig:${AUI_ROOT_DIR}/share/pkgconfig:$ENV{PKG_CONFIG_PATH}")
|
||||
pkg_check_modules(${_aui_pkgconfig_prefix} IMPORTED_TARGET ${_aui_pkgconfig_name})
|
||||
if(DEFINED _aui_prev_pkg_config_path)
|
||||
set(ENV{PKG_CONFIG_PATH} "${_aui_prev_pkg_config_path}")
|
||||
else()
|
||||
unset(ENV{PKG_CONFIG_PATH})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
function(_aui_check_component_deps _component)
|
||||
set(_aui_deps_ok TRUE PARENT_SCOPE)
|
||||
if(NOT DEFINED AUI_COMPONENT_${_component}_LINK_LIBS)
|
||||
return()
|
||||
endif()
|
||||
foreach(_dep IN LISTS AUI_COMPONENT_${_component}_LINK_LIBS)
|
||||
string(REGEX REPLACE "^\\\$<LINK_ONLY:(.*)>$" "\\1" _dep_target "${_dep}")
|
||||
if(_dep_target MATCHES "^aui::")
|
||||
string(REPLACE "aui::" "" _dep_module "${_dep_target}")
|
||||
if(NOT _dep_module IN_LIST AUI_AVAILABLE_COMPONENTS)
|
||||
set(_aui_deps_ok FALSE PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
elseif(_dep_target MATCHES "::")
|
||||
if(NOT TARGET "${_dep_target}")
|
||||
set(_aui_deps_ok FALSE PARENT_SCOPE)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
set(_aui_pending_components ${AUI_FIND_COMPONENTS})
|
||||
set(_aui_processed_components "")
|
||||
while(_aui_pending_components)
|
||||
list(POP_FRONT _aui_pending_components _module)
|
||||
if(_module IN_LIST _aui_processed_components)
|
||||
continue()
|
||||
endif()
|
||||
list(APPEND _aui_processed_components ${_module})
|
||||
if (_module STREQUAL "toolbox")
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_toolbox_FOUND TRUE)
|
||||
continue()
|
||||
endif()
|
||||
|
||||
set(_module_target_name aui::${_module})
|
||||
if (NOT ${_module} IN_LIST AUI_ALL_COMPONENTS)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_${_module}_FOUND FALSE)
|
||||
if (${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED AND ${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED_${_module})
|
||||
message(FATAL_ERROR "Unknown component ${_module}")
|
||||
else()
|
||||
message(STATUS "Unknown component ${_module}")
|
||||
endif()
|
||||
continue()
|
||||
endif()
|
||||
if (_module STREQUAL toolbox)
|
||||
continue()
|
||||
endif()
|
||||
if (${_module} IN_LIST AUI_AVAILABLE_COMPONENTS)
|
||||
_aui_check_component_deps(${_module})
|
||||
if(NOT _aui_deps_ok)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_${_module}_FOUND FALSE)
|
||||
message(STATUS "AUI component '${_module}' skipped: missing transitive dependencies")
|
||||
continue()
|
||||
endif()
|
||||
if (WIN32)
|
||||
find_file(${CMAKE_FIND_PACKAGE_NAME}_${_module}_LIBRARY
|
||||
NAMES "aui.${_module}.dll" "libaui.${_module}.dll"
|
||||
PATHS "${AUI_ROOT_DIR}/bin" "${AUI_ROOT_DIR}/aui.${_module}/bin"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CACHE)
|
||||
find_file(${CMAKE_FIND_PACKAGE_NAME}_${_module}_LIBRARY_DEBUG
|
||||
NAMES "aui.${_module}.dll" "libaui.${_module}.dll"
|
||||
PATHS "${AUI_ROOT_DIR}/debug/bin" "${AUI_ROOT_DIR}/debug/aui.${_module}/bin"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CACHE)
|
||||
find_library(${CMAKE_FIND_PACKAGE_NAME}_${_module}_IMPLIBRARY "aui.${_module}"
|
||||
PATHS "${AUI_ROOT_DIR}/lib" "${AUI_ROOT_DIR}/aui.${_module}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CACHE)
|
||||
find_library(${CMAKE_FIND_PACKAGE_NAME}_${_module}_IMPLIBRARY_DEBUG "aui.${_module}"
|
||||
PATHS "${AUI_ROOT_DIR}/debug/lib" "${AUI_ROOT_DIR}/debug/aui.${_module}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CACHE)
|
||||
else()
|
||||
find_library(${CMAKE_FIND_PACKAGE_NAME}_${_module}_LIBRARY "aui.${_module}"
|
||||
PATHS "${AUI_ROOT_DIR}/lib" "${AUI_ROOT_DIR}/aui.${_module}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CACHE)
|
||||
find_library(${CMAKE_FIND_PACKAGE_NAME}_${_module}_LIBRARY_DEBUG "aui.${_module}"
|
||||
PATHS "${AUI_ROOT_DIR}/debug/lib" "${AUI_ROOT_DIR}/debug/aui.${_module}/lib"
|
||||
NO_DEFAULT_PATH
|
||||
NO_CACHE)
|
||||
endif()
|
||||
set(_lib ${${CMAKE_FIND_PACKAGE_NAME}_${_module}_LIBRARY})
|
||||
set(_lib_debug ${${CMAKE_FIND_PACKAGE_NAME}_${_module}_LIBRARY_DEBUG})
|
||||
set(_implib ${${CMAKE_FIND_PACKAGE_NAME}_${_module}_IMPLIBRARY})
|
||||
set(_implib_debug ${${CMAKE_FIND_PACKAGE_NAME}_${_module}_IMPLIBRARY_DEBUG})
|
||||
set(_include "${AUI_ROOT_DIR}/include")
|
||||
if ((_lib OR _implib) AND EXISTS ${_include})
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_${_module}_FOUND TRUE)
|
||||
if (NOT _lib)
|
||||
set(_lib ${_implib})
|
||||
endif()
|
||||
if (NOT _lib_debug)
|
||||
set(_lib_debug ${_implib_debug})
|
||||
endif()
|
||||
list(APPEND ${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES ${_lib})
|
||||
list(APPEND ${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS ${_include})
|
||||
list(APPEND ${CMAKE_FIND_PACKAGE_NAME}_IMPORTED_TARGETS "${_module_target_name}")
|
||||
add_library(${_module_target_name} ${AUI_COMPONENT_${_module}_KIND} IMPORTED)
|
||||
add_library(aui.${_module} ALIAS ${_module_target_name})
|
||||
target_link_libraries(${_module_target_name} INTERFACE ${AUI_COMPONENT_${_module}_LINK_LIBS})
|
||||
target_link_options(${_module_target_name} INTERFACE ${AUI_COMPONENT_${_module}_LINK_OPTIONS})
|
||||
# Per-config imported locations: Debug consumers link the debug
|
||||
# libs (debug/lib), all other configurations the release ones.
|
||||
set(_aui_props
|
||||
IMPORTED_LOCATION "${_lib}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${AUI_ROOT_DIR}/include"
|
||||
INTERFACE_LINK_DIRECTORIES "${AUI_ROOT_DIR}/lib")
|
||||
if(_implib)
|
||||
list(APPEND _aui_props IMPORTED_IMPLIB "${_implib}")
|
||||
endif()
|
||||
if(_lib_debug)
|
||||
list(APPEND _aui_props IMPORTED_LOCATION_DEBUG "${_lib_debug}")
|
||||
endif()
|
||||
if(_implib_debug)
|
||||
list(APPEND _aui_props IMPORTED_IMPLIB_DEBUG "${_implib_debug}")
|
||||
endif()
|
||||
set_target_properties(${_module_target_name} PROPERTIES ${_aui_props})
|
||||
|
||||
target_compile_definitions(${_module_target_name} INTERFACE ${AUI_COMPONENT_${_module}_COMPILE_DEFINITIONS})
|
||||
if (AUI_COMPONENT_${_module}_WHOLEARCHIVE)
|
||||
set_target_properties(${_module_target_name} PROPERTIES INTERFACE_AUI_WHOLEARCHIVE ON)
|
||||
endif()
|
||||
foreach(_dep IN LISTS AUI_COMPONENT_${_module}_LINK_LIBS)
|
||||
string(REGEX REPLACE "^\\\$<LINK_ONLY:(.*)>$" "\\1" _dep_target "${_dep}")
|
||||
if(_dep_target MATCHES "^aui::")
|
||||
string(REPLACE "aui::" "" _dep_module "${_dep_target}")
|
||||
if(NOT _dep_module IN_LIST _aui_processed_components AND _dep_module IN_LIST AUI_AVAILABLE_COMPONENTS)
|
||||
list(APPEND _aui_pending_components ${_dep_module})
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
continue()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_${_module}_FOUND FALSE)
|
||||
endwhile()
|
||||
|
||||
if(NOT _all)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
|
||||
foreach(_module ${AUI_FIND_COMPONENTS})
|
||||
if(NOT ${CMAKE_FIND_PACKAGE_NAME}_${_module}_FOUND)
|
||||
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED_${_module} OR ${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "Component ${_module} is not found")
|
||||
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_REQUIRED_${_module})
|
||||
message(FATAL_ERROR "Component ${_module} is not found")
|
||||
else()
|
||||
message(STATUS "Component ${_module} is not found")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
if("core" IN_LIST AUI_AVAILABLE_COMPONENTS AND ${CMAKE_FIND_PACKAGE_NAME}_core_FOUND AND ${CMAKE_FIND_PACKAGE_NAME}_IMPORTED_TARGETS)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND TRUE)
|
||||
else()
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_FOUND FALSE)
|
||||
set(${CMAKE_FIND_PACKAGE_NAME}_NOT_FOUND_MESSAGE "AUI could not be found because no core/available components could be loaded")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (${CMAKE_FIND_PACKAGE_NAME}_FOUND AND ${CMAKE_FIND_PACKAGE_NAME}_IMPORTED_TARGETS AND NOT TARGET aui)
|
||||
add_library(aui INTERFACE IMPORTED)
|
||||
set_target_properties(aui PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "${${CMAKE_FIND_PACKAGE_NAME}_IMPORTED_TARGETS}")
|
||||
endif()
|
||||
|
||||
set(AUI_BUILD_AUI_ROOT "${AUI_ROOT_DIR}/share/aui")
|
||||
|
||||
macro(auib_use_system_libs_begin)
|
||||
endmacro()
|
||||
macro(auib_use_system_libs_end)
|
||||
endmacro()
|
||||
|
||||
include("${AUI_BUILD_AUI_ROOT}/cmake/aui.build.cmake")
|
||||
|
||||
if(NOT AUI_TOOLBOX_EXE)
|
||||
find_program(AUI_TOOLBOX_EXE NAMES aui.toolbox
|
||||
HINTS
|
||||
"$ENV{AUI_TOOLBOX_EXE}"
|
||||
"${AUI_ROOT_DIR}/tools/aui-toolbox"
|
||||
"${AUI_ROOT_DIR}/tools/aui"
|
||||
"${AUI_ROOT_DIR}/bin"
|
||||
"${_VCPKG_INSTALLED_DIR}/${VCPKG_HOST_TRIPLET}/tools/aui-toolbox"
|
||||
"${_VCPKG_INSTALLED_DIR}/${_HOST_TRIPLET}/tools/aui-toolbox"
|
||||
)
|
||||
endif()
|
||||
|
|
@ -0,0 +1,362 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 6902d56..d1d37e1 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -64,9 +64,7 @@ function(define_aui_component AUI_COMPONENT_NAME)
|
||||
add_subdirectory("aui.${AUI_COMPONENT_NAME}")
|
||||
endfunction()
|
||||
|
||||
-auib_import(ZLIB https://github.com/aui-framework/zlib
|
||||
- VERSION 448a9c76a97202a21f68bd82e453dd743e944a3a
|
||||
- CMAKE_ARGS -DZLIB_BUILD_EXAMPLES=OFF)
|
||||
+find_package(ZLIB REQUIRED)
|
||||
|
||||
# define all components
|
||||
define_aui_component(core)
|
||||
@@ -86,7 +84,7 @@ define_aui_component(json)
|
||||
define_aui_component(audio)
|
||||
define_aui_component(updater)
|
||||
|
||||
-if (NOT ANDROID AND NOT IOS)
|
||||
+if (0)
|
||||
define_aui_component(uitests)
|
||||
endif()
|
||||
|
||||
@@ -195,7 +193,6 @@ auib_precompiled_binary()
|
||||
# [auib_precompiled_binary]
|
||||
|
||||
# test aui.boot on ci/cd
|
||||
-add_subdirectory(test/)
|
||||
|
||||
# [configure file example]
|
||||
configure_file(cmake/aui-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/aui-config.cmake @ONLY)
|
||||
diff --git a/aui.audio/CMakeLists.txt b/aui.audio/CMakeLists.txt
|
||||
index 21e4415..7beaeca 100644
|
||||
--- a/aui.audio/CMakeLists.txt
|
||||
+++ b/aui.audio/CMakeLists.txt
|
||||
@@ -1,30 +1,33 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
aui_module(aui.audio WHOLEARCHIVE EXPORT aui)
|
||||
-add_subdirectory(3rdparty/ogg)
|
||||
+find_package(Ogg CONFIG REQUIRED)
|
||||
+find_package(Vorbis CONFIG REQUIRED)
|
||||
aui_link(aui.audio PUBLIC aui::core)
|
||||
|
||||
if (AUI_PLATFORM_ANDROID)
|
||||
- auib_import(oboe https://github.com/google/oboe ADD_SUBDIRECTORY VERSION main)
|
||||
- aui_link(aui.audio PUBLIC oboe $<LINK_ONLY:log> $<LINK_ONLY:OpenSLES>)
|
||||
-
|
||||
- install(
|
||||
- TARGETS oboe
|
||||
- EXPORT aui
|
||||
- ARCHIVE DESTINATION "aui.audio/lib"
|
||||
- LIBRARY DESTINATION "aui.audio/lib"
|
||||
- RUNTIME DESTINATION "aui.audio/bin"
|
||||
- PUBLIC_HEADER DESTINATION "aui.audio/include"
|
||||
- INCLUDES DESTINATION "aui.audio/include"
|
||||
- )
|
||||
+ find_path(OBOE_INCLUDE_DIR NAMES oboe/Oboe.h REQUIRED)
|
||||
+ find_library(OBOE_LIBRARY NAMES oboe REQUIRED)
|
||||
+ if(NOT TARGET oboe::oboe)
|
||||
+ add_library(oboe::oboe UNKNOWN IMPORTED)
|
||||
+ set_target_properties(oboe::oboe PROPERTIES
|
||||
+ IMPORTED_LOCATION "${OBOE_LIBRARY}"
|
||||
+ INTERFACE_INCLUDE_DIRECTORIES "${OBOE_INCLUDE_DIR}"
|
||||
+ )
|
||||
+ endif()
|
||||
+ aui_link(aui.audio PUBLIC oboe::oboe $<LINK_ONLY:log> $<LINK_ONLY:OpenSLES>)
|
||||
elseif (AUI_PLATFORM_LINUX)
|
||||
- aui_link(aui.audio PUBLIC pulse)
|
||||
+ include(FindPkgConfig)
|
||||
+ pkg_check_modules(PulseAudio REQUIRED IMPORTED_TARGET libpulse)
|
||||
+ pkg_check_modules(PulseAudioSimple REQUIRED IMPORTED_TARGET libpulse-simple)
|
||||
+ aui_link(aui.audio PRIVATE PkgConfig::PulseAudio PkgConfig::PulseAudioSimple)
|
||||
elseif (AUI_PLATFORM_WIN)
|
||||
aui_link(aui.audio PUBLIC Winmm dsound.lib dxguid.lib)
|
||||
endif()
|
||||
|
||||
-auib_import(Opus https://github.com/xiph/opus.git VERSION v1.4)
|
||||
-aui_link(aui.audio PRIVATE Opus::opus)
|
||||
+include(FindPkgConfig)
|
||||
+pkg_check_modules(Opus REQUIRED IMPORTED_TARGET opus)
|
||||
+aui_link(aui.audio PRIVATE PkgConfig::Opus)
|
||||
|
||||
if (AUI_PLATFORM_IOS OR AUI_PLATFORM_MACOS)
|
||||
auib_use_system_libs_begin()
|
||||
@@ -42,9 +45,9 @@ if (AUI_PLATFORM_MACOS)
|
||||
"-framework QuartzCore")
|
||||
endif()
|
||||
|
||||
-auib_import(soxr https://github.com/aui-framework/soxr
|
||||
- ADD_SUBDIRECTORY
|
||||
- VERSION adacc686124ac3568432f3dca388878963a005ee
|
||||
- )
|
||||
+include(FindPkgConfig)
|
||||
+pkg_check_modules(soxr REQUIRED IMPORTED_TARGET soxr)
|
||||
+
|
||||
+aui_link(aui.audio PRIVATE PkgConfig::soxr)
|
||||
|
||||
-aui_link(aui.audio PRIVATE soxr)
|
||||
+aui_link(aui.audio PRIVATE Vorbis::vorbisfile)
|
||||
diff --git a/aui.audio/src/AUI/Audio/Formats/vorbis/AVorbisSoundPipe.cpp b/aui.audio/src/AUI/Audio/Formats/vorbis/AVorbisSoundPipe.cpp
|
||||
index 5cffdb9..4479ca7 100644
|
||||
--- a/aui.audio/src/AUI/Audio/Formats/vorbis/AVorbisSoundPipe.cpp
|
||||
+++ b/aui.audio/src/AUI/Audio/Formats/vorbis/AVorbisSoundPipe.cpp
|
||||
@@ -1,7 +1,7 @@
|
||||
#include "AVorbisSoundPipe.h"
|
||||
#include "vorbis/codec.h"
|
||||
#include "AUI/Logging/ALogger.h"
|
||||
-#include "os.h"
|
||||
+#include <cmath>
|
||||
|
||||
static constexpr auto LOG_TAG = "vorbis";
|
||||
|
||||
@@ -71,7 +71,7 @@ void AVorbisSoundPipe::write(const char *src, size_t size) {
|
||||
auto sampleCount = vorbis_synthesis_pcmout(mState.ptr(), &pcm);
|
||||
for (int sampleNum = 0; sampleNum < sampleCount; sampleNum++) {
|
||||
for (int channel = 0; channel < mInfo->channels; channel++) {
|
||||
- auto sample = static_cast<int16_t>(vorbis_ftoi(
|
||||
+ auto sample = static_cast<int16_t>(std::lrint(
|
||||
glm::clamp(32768.f * pcm[channel][sampleNum], -32768.f, 32767.f)));
|
||||
mDecodedSamples.write(reinterpret_cast<char*>(&sample), sizeof(sample));
|
||||
}
|
||||
diff --git a/aui.core/CMakeLists.txt b/aui.core/CMakeLists.txt
|
||||
index 6aa1b07..0eaa67f 100644
|
||||
--- a/aui.core/CMakeLists.txt
|
||||
+++ b/aui.core/CMakeLists.txt
|
||||
@@ -11,9 +11,8 @@ aui_enable_benchmarks(aui.core)
|
||||
|
||||
|
||||
get_filename_component(SELF_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
-if (GLM_INCLUDE_DIR)
|
||||
- message(STATUS "Using custom GLM_INCLUDE_DIR: ${GLM_INCLUDE_DIR}")
|
||||
-else()
|
||||
+find_package(glm REQUIRED)
|
||||
+if (0) # vendored glm replaced by vcpkg's glm
|
||||
set(GLM_INCLUDE_DIR "${SELF_DIR}/3rdparty/glm")
|
||||
|
||||
install(
|
||||
@@ -21,7 +20,8 @@ else()
|
||||
DESTINATION "aui.core/include/"
|
||||
)
|
||||
endif()
|
||||
-target_include_directories(aui.core PUBLIC $<BUILD_INTERFACE:${GLM_INCLUDE_DIR}>)
|
||||
+target_link_libraries(aui.core PUBLIC glm::glm-header-only)
|
||||
+target_compile_definitions(aui.core PUBLIC GLM_ENABLE_EXPERIMENTAL=1)
|
||||
|
||||
target_compile_definitions(aui.core PRIVATE UNICODE=1)
|
||||
target_compile_definitions(aui.core PUBLIC NOMINMAX=1)
|
||||
@@ -49,8 +49,7 @@ if (NOT WIN32)
|
||||
endif()
|
||||
|
||||
if (AUI_PLATFORM_LINUX)
|
||||
- auib_import(backtrace https://github.com/aui-framework/libbacktrace
|
||||
- VERSION a5a32e3cc8e22a9fc40689a884b032c52ee3f88e)
|
||||
+ find_package(unofficial-libbacktrace CONFIG REQUIRED)
|
||||
set(_use_backtrace TRUE)
|
||||
else()
|
||||
|
||||
@@ -84,7 +83,7 @@ endif()
|
||||
|
||||
if(_use_backtrace)
|
||||
message(STATUS "Stacktrace backend: backtrace")
|
||||
- aui_link(aui.core PRIVATE backtrace)
|
||||
+ aui_link(aui.core PRIVATE unofficial::libbacktrace::libbacktrace)
|
||||
target_compile_definitions(aui.core PRIVATE AUI_USE_BACKTRACE=1)
|
||||
elseif(_use_unwind)
|
||||
message(STATUS "Stacktrace backend: unwind")
|
||||
@@ -111,7 +110,12 @@ if (ANDROID)
|
||||
endif()
|
||||
|
||||
aui_link(aui.core PRIVATE ZLIB::ZLIB)
|
||||
-add_subdirectory(3rdparty/minizip)
|
||||
+find_package(minizip CONFIG REQUIRED)
|
||||
+if(TARGET MINIZIP::minizip)
|
||||
+ aui_link(aui.core PRIVATE MINIZIP::minizip)
|
||||
+else()
|
||||
+ aui_link(aui.core PRIVATE MINIZIP::minizipstatic)
|
||||
+endif()
|
||||
|
||||
# forward platform info
|
||||
foreach(_var AUI_PLATFORM_WIN
|
||||
@@ -147,13 +151,9 @@ endif()
|
||||
|
||||
|
||||
# [auib_import examples]
|
||||
-auib_import(fmt https://github.com/fmtlib/fmt
|
||||
- VERSION 9.1.0
|
||||
- CMAKE_ARGS -DFMT_TEST=FALSE -DFMT_DOC=FALSE)
|
||||
+find_package(fmt CONFIG REQUIRED)
|
||||
|
||||
-auib_import(range-v3 https://github.com/ericniebler/range-v3
|
||||
- VERSION 0.12.0
|
||||
- CMAKE_ARGS -DRANGE_V3_DOCS=OFF -DRANGE_V3_TESTS=OFF -DRANGE_V3_EXAMPLES=OFF -DRANGE_V3_PERF=OFF -DRANGE_V3_HEADER_CHECKS=OFF)
|
||||
+find_package(range-v3 CONFIG REQUIRED)
|
||||
# [auib_import examples]
|
||||
|
||||
aui_link(aui.core PUBLIC fmt::fmt-header-only range-v3::range-v3)
|
||||
diff --git a/aui.crypt/CMakeLists.txt b/aui.crypt/CMakeLists.txt
|
||||
index c5354f2..9adab74 100644
|
||||
--- a/aui.crypt/CMakeLists.txt
|
||||
+++ b/aui.crypt/CMakeLists.txt
|
||||
@@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
unset(OPENSSL_CRYPTO_LIBRARY CACHE)
|
||||
unset(OPENSSL_SSL_LIBRARY CACHE)
|
||||
-auib_import(OpenSSL https://github.com/aui-framework/openssl-cmake/archive/56ee19b7e11b418e0f29825414abdca96ff6b83e.zip ARCHIVE)
|
||||
+find_package(OpenSSL REQUIRED)
|
||||
|
||||
aui_module(aui.crypt EXPORT aui)
|
||||
aui_enable_tests(aui.crypt)
|
||||
diff --git a/aui.curl/CMakeLists.txt b/aui.curl/CMakeLists.txt
|
||||
index 5141c8e..1da335a 100644
|
||||
--- a/aui.curl/CMakeLists.txt
|
||||
+++ b/aui.curl/CMakeLists.txt
|
||||
@@ -1,7 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
-auib_import(CURL https://github.com/aui-framework/curl/archive/refs/heads/master.zip
|
||||
- ARCHIVE)
|
||||
+find_package(CURL REQUIRED)
|
||||
|
||||
aui_module(aui.curl EXPORT aui WHOLEARCHIVE)
|
||||
aui_enable_tests(aui.curl)
|
||||
diff --git a/aui.image/CMakeLists.txt b/aui.image/CMakeLists.txt
|
||||
index 033e7ad..e9494fe 100644
|
||||
--- a/aui.image/CMakeLists.txt
|
||||
+++ b/aui.image/CMakeLists.txt
|
||||
@@ -1,7 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
-auib_import(lunasvg https://github.com/aui-framework/lunasvg
|
||||
- VERSION 272ceee)
|
||||
+find_package(lunasvg CONFIG REQUIRED)
|
||||
|
||||
|
||||
set(WEBP_COMPONENTS_TO_DISABLE ANIM_UTILS CWEBP DWEBP GIF2WEBP IMG2WEBP VWEBP WEBPINFO LIBWEBPMUX WEBPMUX EXTRAS)
|
||||
@@ -10,9 +9,11 @@ foreach(_component ${WEBP_COMPONENTS_TO_DISABLE})
|
||||
list(APPEND WEBP_CMAKE_ARGS "-DWEBP_BUILD_${_component}=OFF")
|
||||
endforeach()
|
||||
|
||||
-auib_import(WebP https://github.com/webmproject/libwebp VERSION 1.3.1 CMAKE_ARGS ${WEBP_CMAKE_ARGS})
|
||||
+find_package(WebP CONFIG REQUIRED)
|
||||
|
||||
aui_module(aui.image WHOLEARCHIVE EXPORT aui)
|
||||
-add_subdirectory(3rdparty)
|
||||
-aui_link(aui.image PRIVATE aui::core lunasvg::lunasvg WebP::webp WebP::webpdemux)
|
||||
+find_package(unofficial-libnsgif CONFIG REQUIRED)
|
||||
+find_package(Stb REQUIRED)
|
||||
+aui_link(aui.image PRIVATE aui::core lunasvg::lunasvg WebP::webp WebP::webpdemux unofficial::libnsgif::nsgif)
|
||||
+target_include_directories(aui.image PRIVATE ${Stb_INCLUDE_DIR})
|
||||
aui_enable_tests(aui.image)
|
||||
diff --git a/aui.image/src/AUI/Image/gif/GifImageFactory.cpp b/aui.image/src/AUI/Image/gif/GifImageFactory.cpp
|
||||
index e9ca38f..4597d68 100644
|
||||
--- a/aui.image/src/AUI/Image/gif/GifImageFactory.cpp
|
||||
+++ b/aui.image/src/AUI/Image/gif/GifImageFactory.cpp
|
||||
@@ -17,7 +17,9 @@
|
||||
#include "AUI/Image/AImage.h"
|
||||
#include "AUI/Util/ARaiiHelper.h"
|
||||
#include "AUI/Logging/ALogger.h"
|
||||
-#include "nsgif.h"
|
||||
+extern "C" {
|
||||
+#include <nsgif.h>
|
||||
+}
|
||||
|
||||
static nsgif_bitmap_t* create_callback(int width, int height) {
|
||||
return new char[4 * width * height];
|
||||
diff --git a/aui.sqlite/CMakeLists.txt b/aui.sqlite/CMakeLists.txt
|
||||
index 6afd58f..8514048 100644
|
||||
--- a/aui.sqlite/CMakeLists.txt
|
||||
+++ b/aui.sqlite/CMakeLists.txt
|
||||
@@ -1,12 +1,11 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
|
||||
|
||||
-file(GLOB_RECURSE SQLITE3_SRCS 3rdparty/*.c)
|
||||
+find_package(unofficial-sqlite3 CONFIG REQUIRED)
|
||||
|
||||
-aui_module(aui.sqlite ADDITIONAL_SRCS ${SQLITE3_SRCS}
|
||||
- EXPORT aui
|
||||
+aui_module(aui.sqlite EXPORT aui
|
||||
PLUGIN)
|
||||
-target_include_directories(aui.sqlite PRIVATE 3rdparty/sqlite3)
|
||||
+aui_link(aui.sqlite PRIVATE unofficial::sqlite3::sqlite3)
|
||||
|
||||
aui_link(aui.sqlite PUBLIC aui::core)
|
||||
aui_link(aui.sqlite PUBLIC aui::data)
|
||||
diff --git a/aui.views/CMakeLists.txt b/aui.views/CMakeLists.txt
|
||||
index dfe6b18..e8a40cf 100644
|
||||
--- a/aui.views/CMakeLists.txt
|
||||
+++ b/aui.views/CMakeLists.txt
|
||||
@@ -9,10 +9,7 @@ find_package(OpenGL)
|
||||
auib_use_system_libs_end()
|
||||
|
||||
if (OPENGL_FOUND OR ANDROID OR IOS)
|
||||
- auib_import(Freetype https://github.com/freetype/freetype/archive/refs/tags/VER-2-13-3.zip ARCHIVE
|
||||
- CONFIG_ONLY
|
||||
- CMAKE_ARGS -DFT_DISABLE_BZIP2=ON -DFT_DISABLE_PNG=ON -DFT_DISABLE_HARFBUZZ=ON -DFT_DISABLE_BROTLI=ON
|
||||
- )
|
||||
+ find_package(Freetype REQUIRED)
|
||||
|
||||
if (NOT TARGET Freetype::Freetype)
|
||||
message(FATAL_ERROR "Freetype not imported")
|
||||
@@ -20,9 +17,7 @@ if (OPENGL_FOUND OR ANDROID OR IOS)
|
||||
|
||||
|
||||
if (AUI_PLATFORM_WIN OR AUI_PLATFORM_LINUX OR AUI_PLATFORM_MACOS)
|
||||
- auib_import(GLEW https://github.com/aui-framework/glew-cmake
|
||||
- CMAKE_WORKING_DIR "build/cmake"
|
||||
- VERSION a80a1dc)
|
||||
+ find_package(GLEW CONFIG REQUIRED)
|
||||
endif ()
|
||||
|
||||
aui_module(aui.views EXPORT aui)
|
||||
@@ -32,17 +27,12 @@ if (OPENGL_FOUND OR ANDROID OR IOS)
|
||||
auib_use_system_libs_begin()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
- pkg_check_modules(DBUS REQUIRED dbus-1)
|
||||
- include_directories(${DBUS_INCLUDE_DIRS})
|
||||
- link_directories(${DBUS_LIBRARY_DIRS})
|
||||
-
|
||||
- pkg_check_modules(GTK3 REQUIRED gtk+-3.0)
|
||||
- include_directories(${GTK3_INCLUDE_DIRS})
|
||||
- link_directories(${GTK3_LIBRARY_DIRS})
|
||||
+ pkg_check_modules(DBUS REQUIRED IMPORTED_TARGET dbus-1)
|
||||
+ pkg_check_modules(GTK3 REQUIRED IMPORTED_TARGET gtk+-3.0)
|
||||
|
||||
auib_use_system_libs_end()
|
||||
|
||||
- aui_link(aui.views PRIVATE X11::X11 X11::Xrandr X11::Xcursor X11::Xi ${DBUS_LIBRARIES} ${GTK3_LIBRARIES} Fontconfig::Fontconfig)
|
||||
+ aui_link(aui.views PRIVATE X11::X11 X11::Xrandr X11::Xcursor X11::Xi PkgConfig::DBUS PkgConfig::GTK3 Fontconfig::Fontconfig)
|
||||
endif ()
|
||||
|
||||
if (NOT AUI_PLATFORM_WINDOWS)
|
||||
diff --git a/cmake/aui.build.cmake b/cmake/aui.build.cmake
|
||||
index 90c53d4..7a8e8e8 100644
|
||||
--- a/cmake/aui.build.cmake
|
||||
+++ b/cmake/aui.build.cmake
|
||||
@@ -1072,18 +1072,18 @@ function(aui_module AUI_MODULE_NAME)
|
||||
ARCHIVE DESTINATION "lib"
|
||||
LIBRARY DESTINATION "lib"
|
||||
RUNTIME DESTINATION "bin"
|
||||
- PUBLIC_HEADER DESTINATION "${AUI_MODULE_NAME}/include"
|
||||
- INCLUDES DESTINATION "${AUI_MODULE_NAME}/include"
|
||||
+ PUBLIC_HEADER DESTINATION "include"
|
||||
+ INCLUDES DESTINATION "include"
|
||||
)
|
||||
|
||||
install(
|
||||
DIRECTORY src/
|
||||
- DESTINATION "${AUI_MODULE_NAME}/include/"
|
||||
+ DESTINATION "include/"
|
||||
FILES_MATCHING PATTERN "*.h"
|
||||
PATTERN "*.hpp"
|
||||
|
||||
)
|
||||
- target_include_directories(${AUI_MODULE_NAME} INTERFACE $<INSTALL_INTERFACE:${AUI_MODULE_NAME}/include/>)
|
||||
+ target_include_directories(${AUI_MODULE_NAME} INTERFACE $<INSTALL_INTERFACE:include>)
|
||||
endif()
|
||||
if (NOT BUILD_AS_IMPORTED_NAME STREQUAL ${AUI_MODULE_NAME})
|
||||
add_library(${BUILD_AS_IMPORTED_NAME} ALIAS ${AUI_MODULE_NAME})
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
diff --git a/aui.boot.cmake b/aui.boot.cmake
|
||||
index 6baab15..72a838b 100644
|
||||
--- a/aui.boot.cmake
|
||||
+++ b/aui.boot.cmake
|
||||
@@ -204,13 +204,13 @@ endif()
|
||||
|
||||
|
||||
# create all required dirs
|
||||
-if (NOT EXISTS ${AUIB_CACHE_DIR})
|
||||
+if (0)
|
||||
file(MAKE_DIRECTORY ${AUIB_CACHE_DIR})
|
||||
endif()
|
||||
-if (NOT EXISTS ${AUIB_CACHE_DIR}/prefix)
|
||||
+if (0)
|
||||
file(MAKE_DIRECTORY ${AUIB_CACHE_DIR}/prefix)
|
||||
endif()
|
||||
-if (NOT EXISTS ${AUIB_CACHE_DIR}/repo)
|
||||
+if (0)
|
||||
file(MAKE_DIRECTORY ${AUIB_CACHE_DIR}/repo)
|
||||
endif()
|
||||
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/cmake/aui.build.cmake b/cmake/aui.build.cmake
|
||||
index 90c53d45..c741359d 100644
|
||||
--- a/cmake/aui.build.cmake
|
||||
+++ b/cmake/aui.build.cmake
|
||||
@@ -230,7 +230,7 @@ macro(_aui_import_gtest)
|
||||
endmacro()
|
||||
|
||||
macro(aui_enable_tests AUI_MODULE_NAME)
|
||||
- if (NOT CMAKE_CROSSCOMPILING)
|
||||
+ if (0)
|
||||
_aui_import_gtest()
|
||||
if (NOT TARGET GTest::gtest)
|
||||
message(FATAL_ERROR "GTest::gtest not found!")
|
||||
@@ -328,7 +328,7 @@ macro(_aui_import_google_benchmark)
|
||||
endmacro()
|
||||
|
||||
macro(aui_enable_benchmarks AUI_MODULE_NAME)
|
||||
- if (NOT CMAKE_CROSSCOMPILING)
|
||||
+ if (0)
|
||||
_aui_import_gtest()
|
||||
_aui_import_google_benchmark()
|
||||
if (NOT TARGET benchmark::benchmark)
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/cmake/aui.build.cmake b/cmake/aui.build.cmake
|
||||
index 90c53d4..780c872 100644
|
||||
--- a/cmake/aui.build.cmake
|
||||
+++ b/cmake/aui.build.cmake
|
||||
@@ -140,7 +140,7 @@ else()
|
||||
set(AUI_COMPILER_MSVC 0 CACHE INTERNAL "Compiler")
|
||||
endif()
|
||||
|
||||
-if (CMAKE_GENERATOR_PLATFORM MATCHES "(arm64)|(ARM64)" OR CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64)")
|
||||
+if (CMAKE_GENERATOR_PLATFORM MATCHES "(aarch64|arm64|AARCH64|ARM64)" OR CMAKE_SYSTEM_PROCESSOR MATCHES "(aarch64|arm64|AARCH64|ARM64)")
|
||||
set(AUI_ARCH_X86_64 0 CACHE INTERNAL "Arch")
|
||||
set(AUI_ARCH_X86 0 CACHE INTERNAL "Arch")
|
||||
set(AUI_ARCH_ARM_64 1 CACHE INTERNAL "Arch")
|
||||
|
|
@ -0,0 +1,196 @@
|
|||
diff --git a/aui.core/src/AUI/Common/AByteBufferView.h b/aui.core/src/AUI/Common/AByteBufferView.h
|
||||
index 0f82653..176170c 100644
|
||||
--- a/aui.core/src/AUI/Common/AByteBufferView.h
|
||||
+++ b/aui.core/src/AUI/Common/AByteBufferView.h
|
||||
@@ -116,8 +116,13 @@ public:
|
||||
inline std::ostream& operator<<(std::ostream& lhs, const AByteBufferView& rhs) {
|
||||
lhs << "[";
|
||||
for (const auto b : rhs) {
|
||||
- char buf[8];
|
||||
+ char buf[16];
|
||||
+ #if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
lhs.write(buf, std::distance(std::begin(buf), fmt::format_to(buf, " {:02x}", b)));
|
||||
+ #else
|
||||
+ auto end = fmt::format_to(buf, " {:02x}", static_cast<uint8_t>(b));
|
||||
+ lhs.write(buf, end - buf);
|
||||
+ #endif
|
||||
}
|
||||
lhs << " ]";
|
||||
|
||||
diff --git a/aui.core/src/AUI/Common/AString.h b/aui.core/src/AUI/Common/AString.h
|
||||
index cbf9d12..2623866 100644
|
||||
--- a/aui.core/src/AUI/Common/AString.h
|
||||
+++ b/aui.core/src/AUI/Common/AString.h
|
||||
@@ -14,6 +14,7 @@
|
||||
#include <algorithm>
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
+#include <cstring>
|
||||
#include "AUI/Core.h"
|
||||
#include "AUI/Traits/values.h"
|
||||
#include <AUI/Common/ASet.h>
|
||||
@@ -839,7 +840,9 @@ namespace aui::win32 {
|
||||
}
|
||||
#endif
|
||||
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
template <> struct fmt::detail::is_string<AString>: std::false_type {};
|
||||
+#endif
|
||||
|
||||
template <> struct fmt::formatter<AString>: fmt::formatter<std::string> {
|
||||
auto format(const AString& s, format_context& ctx) const {
|
||||
diff --git a/aui.core/src/AUI/Traits/strings.h b/aui.core/src/AUI/Traits/strings.h
|
||||
index ef92c34..7d5d5d7 100644
|
||||
--- a/aui.core/src/AUI/Traits/strings.h
|
||||
+++ b/aui.core/src/AUI/Traits/strings.h
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "types.h"
|
||||
|
||||
#include <fmt/format.h>
|
||||
+#include <fmt/ranges.h>
|
||||
|
||||
namespace aui {
|
||||
|
||||
diff --git a/aui.curl/src/AUI/Curl/ACurlMulti.cpp b/aui.curl/src/AUI/Curl/ACurlMulti.cpp
|
||||
index f6faf9b..b6774cc 100644
|
||||
--- a/aui.curl/src/AUI/Curl/ACurlMulti.cpp
|
||||
+++ b/aui.curl/src/AUI/Curl/ACurlMulti.cpp
|
||||
@@ -53,7 +53,11 @@ void ACurlMulti::run(bool infinite) {
|
||||
AThread::interruptionPoint();
|
||||
|
||||
if (status) {
|
||||
+ #if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
throw ACurl::Exception("curl poll failed: {}"_format(status));
|
||||
+ #else
|
||||
+ throw ACurl::Exception(fmt::format("curl poll failed: {}", static_cast<int>(status)));
|
||||
+ #endif
|
||||
}
|
||||
|
||||
int messagesLeft;
|
||||
diff --git a/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp b/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp
|
||||
index 0847241..58f6e0f 100644
|
||||
--- a/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp
|
||||
+++ b/aui.toolbox/src/ShadingLanguage/Lang/Parser.cpp
|
||||
@@ -95,7 +95,11 @@ _<AST> Parser::parseShader() {
|
||||
break;
|
||||
|
||||
default:
|
||||
+ #if defined(FMT_VERSION) && (FMT_VERSION < 100000)
|
||||
reportUnexpectedErrorAndSkip("expected using, class, struct, input, output, inter, uniform, entry keywords"_format(keywordType));
|
||||
+ #else
|
||||
+ reportUnexpectedErrorAndSkip(fmt::format("expected using, class, struct, input, output, inter, uniform, entry keywords {}", keywordType));
|
||||
+ #endif
|
||||
}
|
||||
break;
|
||||
}
|
||||
diff --git a/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h b/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h
|
||||
index c75dc8b..bdebaae 100644
|
||||
--- a/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h
|
||||
+++ b/aui.toolbox/src/ShadingLanguage/Lang/Token/KeywordToken.h
|
||||
@@ -101,4 +101,10 @@ public:
|
||||
static Type fromName(const AString& name);
|
||||
};
|
||||
|
||||
-
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <> struct fmt::formatter<KeywordToken::Type> : fmt::formatter<const char*> {
|
||||
+ auto format(KeywordToken::Type type, fmt::format_context& ctx) const {
|
||||
+ return fmt::formatter<const char*>::format(KeywordToken(type).getName(), ctx);
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
diff --git a/aui.views/src/AUI/ASS/Property/Opacity.h b/aui.views/src/AUI/ASS/Property/Opacity.h
|
||||
index 53d4786..dfde6ce 100644
|
||||
--- a/aui.views/src/AUI/ASS/Property/Opacity.h
|
||||
+++ b/aui.views/src/AUI/ASS/Property/Opacity.h
|
||||
@@ -19,6 +19,15 @@
|
||||
#include <AUI/Common/IStringable.h>
|
||||
#include "IProperty.h"
|
||||
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <> struct fmt::formatter<aui::float_within_0_1> : fmt::formatter<float> {
|
||||
+ auto format(const aui::float_within_0_1& v, fmt::format_context& ctx) const {
|
||||
+ return fmt::formatter<float>::format(static_cast<float>(v), ctx);
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
+
|
||||
+
|
||||
namespace ass {
|
||||
|
||||
/**
|
||||
diff --git a/aui.views/src/AUI/ASS/unset.h b/aui.views/src/AUI/ASS/unset.h
|
||||
index 62a2fb8..fa5780c 100644
|
||||
--- a/aui.views/src/AUI/ASS/unset.h
|
||||
+++ b/aui.views/src/AUI/ASS/unset.h
|
||||
@@ -182,4 +182,28 @@ std::ostream& operator<<(std::ostream& o, const ass::unset_wrap<T>& wrap) {
|
||||
o << "<unset>";
|
||||
}
|
||||
return o;
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
+
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <typename T, typename Char>
|
||||
+struct fmt::formatter<ass::unset_wrap<T>, Char> {
|
||||
+ fmt::formatter<T, Char> inner;
|
||||
+
|
||||
+ // Parse format specs like {:>10}, {:.2f}, etc.
|
||||
+ template<typename ParseContext>
|
||||
+ constexpr auto parse(ParseContext& ctx) {
|
||||
+ return inner.parse(ctx);
|
||||
+ }
|
||||
+
|
||||
+ // Format either the value (if set) or the "<unset>" fallback
|
||||
+ template<typename FormatContext>
|
||||
+ auto format(const ass::unset_wrap<T>& value, FormatContext& ctx) const {
|
||||
+ if (value) {
|
||||
+ return inner.format(*value, ctx);
|
||||
+ } else {
|
||||
+ static constexpr auto fallback = std::basic_string_view<Char>(FMT_STRING("<unset>"));
|
||||
+ return fmt::format_to(ctx.out(), "{}", fallback);
|
||||
+ }
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
diff --git a/aui.views/src/AUI/Util/AMetric.h b/aui.views/src/AUI/Util/AMetric.h
|
||||
index 84a5ec1..f58e160 100644
|
||||
--- a/aui.views/src/AUI/Util/AMetric.h
|
||||
+++ b/aui.views/src/AUI/Util/AMetric.h
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <ostream>
|
||||
#include <tuple>
|
||||
#include "AUI/Util/Assert.h"
|
||||
+#include <fmt/format.h>
|
||||
|
||||
class AString;
|
||||
|
||||
@@ -259,4 +260,25 @@ inline std::ostream& operator<<(std::ostream& o, const AMetric& value) {
|
||||
break;
|
||||
}
|
||||
return o;
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
+
|
||||
+#if defined(FMT_VERSION) && (FMT_VERSION >= 100000)
|
||||
+template <> struct fmt::formatter<AMetric> {
|
||||
+ constexpr auto parse(format_parse_context& ctx) {
|
||||
+ return ctx.begin(); // No custom formatting options needed
|
||||
+ }
|
||||
+
|
||||
+ template <typename FormatContext>
|
||||
+ auto format(const AMetric& metric, FormatContext& ctx) const {
|
||||
+ std::string_view suffix;
|
||||
+ switch (metric.getUnit()) {
|
||||
+ case AMetric::T_PX: suffix = "px"; break;
|
||||
+ case AMetric::T_DP: suffix = "dp"; break;
|
||||
+ case AMetric::T_PT: suffix = "pt"; break;
|
||||
+ default: suffix = ""; break;
|
||||
+ }
|
||||
+
|
||||
+ return fmt::format_to(ctx.out(), "{}{}", metric.getRawValue(), suffix);
|
||||
+ }
|
||||
+};
|
||||
+#endif
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
diff --git a/aui.views/src/AUI/GL/OpenGLRenderer.cpp b/aui.views/src/AUI/GL/OpenGLRenderer.cpp
|
||||
index 42fafa0..b33409b 100644
|
||||
--- a/aui.views/src/AUI/GL/OpenGLRenderer.cpp
|
||||
+++ b/aui.views/src/AUI/GL/OpenGLRenderer.cpp
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "ShaderUniforms.h"
|
||||
#include "AUI/Render/IRenderer.h"
|
||||
#include "glm/fwd.hpp"
|
||||
+#include <glm/ext/matrix_clip_space.hpp>
|
||||
#include "AUI/Util/GaussianKernel.h"
|
||||
#include "AUI/Traits/bit.h"
|
||||
#include <AUI/Traits/callables.h>
|
||||
diff --git a/aui.views/src/AUI/Platform/AGLEmbedAuiWrap.cpp b/aui.views/src/AUI/Platform/AGLEmbedAuiWrap.cpp
|
||||
index 05ed0b0..39fc651 100644
|
||||
--- a/aui.views/src/AUI/Platform/AGLEmbedAuiWrap.cpp
|
||||
+++ b/aui.views/src/AUI/Platform/AGLEmbedAuiWrap.cpp
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "AGLEmbedAuiWrap.h"
|
||||
#include "AUI/GL/State.h"
|
||||
#include "AUI/GL/OpenGLRenderer.h"
|
||||
+#include <glm/ext/matrix_clip_space.hpp>
|
||||
|
||||
void AGLEmbedAuiWrap::render(ARenderContext context) {
|
||||
windowMakeCurrent();
|
||||
diff --git a/aui.views/src/AUI/Render/IRenderer.h b/aui.views/src/AUI/Render/IRenderer.h
|
||||
index f726865..f173190 100644
|
||||
--- a/aui.views/src/AUI/Render/IRenderer.h
|
||||
+++ b/aui.views/src/AUI/Render/IRenderer.h
|
||||
@@ -12,6 +12,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <glm/glm.hpp>
|
||||
+#include <glm/ext/matrix_transform.hpp>
|
||||
#include <AUI/Reflect/AEnumerate.h>
|
||||
#include <AUI/Common/ASide.h>
|
||||
#include <AUI/Common/AColor.h>
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
diff --git a/aui.views/src/AUI/GL/gl.h b/aui.views/src/AUI/GL/gl.h
|
||||
index 64209c64..afd734e3 100644
|
||||
--- a/aui.views/src/AUI/GL/gl.h
|
||||
+++ b/aui.views/src/AUI/GL/gl.h
|
||||
@@ -10,7 +10,6 @@
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
-extern "C" {
|
||||
#if AUI_PLATFORM_ANDROID
|
||||
#include <GLES3/gl3.h>
|
||||
#include <GLES3/gl31.h>
|
||||
@@ -27,4 +26,3 @@ extern "C" {
|
||||
#include <GL/glew.h>
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
-}
|
||||
|
|
@ -0,0 +1,141 @@
|
|||
diff --git a/aui.core/src/AUI/api.h b/aui.core/src/AUI/api.h
|
||||
index 7be8bd6..5aae23d 100644
|
||||
--- a/aui.core/src/AUI/api.h
|
||||
+++ b/aui.core/src/AUI/api.h
|
||||
@@ -11,6 +11,84 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
+#if !defined(AUI_PLATFORM_WIN) && !defined(AUI_PLATFORM_LINUX) && !defined(AUI_PLATFORM_APPLE) && !defined(AUI_PLATFORM_ANDROID) && !defined(AUI_PLATFORM_EMSCRIPTEN)
|
||||
+ #if defined(_WIN32)
|
||||
+ #define AUI_PLATFORM_WIN 1
|
||||
+ #elif defined(__ANDROID__)
|
||||
+ #define AUI_PLATFORM_ANDROID 1
|
||||
+ #define AUI_PLATFORM_UNIX 1
|
||||
+ #elif defined(__APPLE__)
|
||||
+ #define AUI_PLATFORM_APPLE 1
|
||||
+ #define AUI_PLATFORM_UNIX 1
|
||||
+ #include <TargetConditionals.h>
|
||||
+ #if TARGET_OS_IPHONE
|
||||
+ #define AUI_PLATFORM_IOS 1
|
||||
+ #else
|
||||
+ #define AUI_PLATFORM_MACOS 1
|
||||
+ #endif
|
||||
+ #elif defined(__EMSCRIPTEN__)
|
||||
+ #define AUI_PLATFORM_EMSCRIPTEN 1
|
||||
+ #elif defined(__linux__)
|
||||
+ #define AUI_PLATFORM_LINUX 1
|
||||
+ #define AUI_PLATFORM_UNIX 1
|
||||
+ #elif defined(__unix__)
|
||||
+ #define AUI_PLATFORM_UNIX 1
|
||||
+ #endif
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_WIN
|
||||
+ #define AUI_PLATFORM_WIN 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_LINUX
|
||||
+ #define AUI_PLATFORM_LINUX 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_APPLE
|
||||
+ #define AUI_PLATFORM_APPLE 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_MACOS
|
||||
+ #define AUI_PLATFORM_MACOS 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_IOS
|
||||
+ #define AUI_PLATFORM_IOS 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_ANDROID
|
||||
+ #define AUI_PLATFORM_ANDROID 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_EMSCRIPTEN
|
||||
+ #define AUI_PLATFORM_EMSCRIPTEN 0
|
||||
+#endif
|
||||
+#ifndef AUI_PLATFORM_UNIX
|
||||
+ #define AUI_PLATFORM_UNIX 0
|
||||
+#endif
|
||||
+#if !defined(AUI_ARCH_X86) && !defined(AUI_ARCH_X86_64) && !defined(AUI_ARCH_ARM_V7) && !defined(AUI_ARCH_ARM_64)
|
||||
+ #if defined(__x86_64__) || defined(_M_X64) || defined(__amd64__)
|
||||
+ #define AUI_ARCH_X86_64 1
|
||||
+ #elif defined(__i386__) || defined(_M_IX86)
|
||||
+ #define AUI_ARCH_X86 1
|
||||
+ #elif defined(__aarch64__) || defined(_M_ARM64) || defined(_M_ARM64EC)
|
||||
+ #define AUI_ARCH_ARM_64 1
|
||||
+ #elif defined(__arm__) || defined(_M_ARM)
|
||||
+ #define AUI_ARCH_ARM_V7 1
|
||||
+ #endif
|
||||
+#endif
|
||||
+#ifndef AUI_ARCH_X86
|
||||
+ #define AUI_ARCH_X86 0
|
||||
+#endif
|
||||
+#ifndef AUI_ARCH_X86_64
|
||||
+ #define AUI_ARCH_X86_64 0
|
||||
+#endif
|
||||
+#ifndef AUI_ARCH_ARM_V7
|
||||
+ #define AUI_ARCH_ARM_V7 0
|
||||
+#endif
|
||||
+#ifndef AUI_ARCH_ARM_64
|
||||
+ #define AUI_ARCH_ARM_64 0
|
||||
+#endif
|
||||
+#ifndef AUI_DEBUG
|
||||
+ #if defined(NDEBUG)
|
||||
+ #define AUI_DEBUG 0
|
||||
+ #else
|
||||
+ #define AUI_DEBUG 1
|
||||
+ #endif
|
||||
+#endif
|
||||
#ifdef AUI_STATIC
|
||||
#define AUI_IMPORT
|
||||
#define AUI_EXPORT
|
||||
@@ -23,6 +101,51 @@
|
||||
#define AUI_EXPORT __attribute__((visibility("default")))
|
||||
#endif
|
||||
#endif
|
||||
+#ifndef API_AUI_CORE
|
||||
+#define API_AUI_CORE AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_VIEWS
|
||||
+#define API_AUI_VIEWS AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_AUDIO
|
||||
+#define API_AUI_AUDIO AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_CRYPT
|
||||
+#define API_AUI_CRYPT AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_CURL
|
||||
+#define API_AUI_CURL AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_DATA
|
||||
+#define API_AUI_DATA AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_IMAGE
|
||||
+#define API_AUI_IMAGE AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_JSON
|
||||
+#define API_AUI_JSON AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_MYSQL
|
||||
+#define API_AUI_MYSQL AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_NETWORK
|
||||
+#define API_AUI_NETWORK AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_SQLITE
|
||||
+#define API_AUI_SQLITE AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_UITESTS
|
||||
+#define API_AUI_UITESTS AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_UPDATER
|
||||
+#define API_AUI_UPDATER AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef API_AUI_XML
|
||||
+#define API_AUI_XML AUI_IMPORT
|
||||
+#endif
|
||||
+#ifndef GLM_ENABLE_EXPERIMENTAL
|
||||
+#define GLM_ENABLE_EXPERIMENTAL 1
|
||||
+#endif
|
||||
|
||||
|
||||
#if !__cpp_rtti
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO aui-framework/aui
|
||||
REF "v${VERSION}"
|
||||
SHA512 decac6cebb6003791896e8d7a9fd7334351aa30205eac787cdbb51d1da657cda140178e0b8f5d236b42a4c1f37633141fb869784e5fc5c9718b5396e077afe7d
|
||||
HEAD_REF master
|
||||
PATCHES
|
||||
debundle.patch
|
||||
disable-tests.patch
|
||||
disable-auib.patch
|
||||
fix-fmt12.patch
|
||||
fix-glm.patch
|
||||
fix-macos.patch
|
||||
fix-arm64.patch
|
||||
fix-public-headers.patch
|
||||
)
|
||||
|
||||
file(REMOVE_RECURSE "${SOURCE_PATH}/aui.audio/3rdparty" "${SOURCE_PATH}/aui.core/3rdparty" "${SOURCE_PATH}/aui.image/3rdparty" "${SOURCE_PATH}/aui.sqlite/3rdparty")
|
||||
file(REMOVE "${SOURCE_PATH}/platform/android/project/gradle/wrapper/gradle-wrapper.jar")
|
||||
|
||||
file(COPY "${CMAKE_CURRENT_LIST_DIR}/aui-config.cmake.in" DESTINATION "${SOURCE_PATH}/cmake")
|
||||
|
||||
vcpkg_find_acquire_program(PKGCONFIG)
|
||||
|
||||
set(_aui_cmake_options "")
|
||||
if(VCPKG_CROSSCOMPILING)
|
||||
# aui.views compiles assets and shaders at build time with aui.toolbox, which
|
||||
# must run on the host. When cross-compiling the in-tree aui.toolbox target is
|
||||
# not built (and would target the wrong architecture anyway), so use the
|
||||
# host-built tool from the aui-toolbox port. This also keeps AUI Boot from
|
||||
# being invoked to fetch a host toolchain.
|
||||
find_program(AUI_TOOLBOX_EXE NAMES aui.toolbox
|
||||
HINTS "${CURRENT_HOST_INSTALLED_DIR}/tools/aui-toolbox"
|
||||
NO_DEFAULT_PATH
|
||||
)
|
||||
if(NOT AUI_TOOLBOX_EXE)
|
||||
message(FATAL_ERROR
|
||||
"aui needs the host tool aui.toolbox when cross-compiling; "
|
||||
"the aui-toolbox host dependency did not install it")
|
||||
endif()
|
||||
list(APPEND _aui_cmake_options "-DAUI_TOOLBOX_EXE=${AUI_TOOLBOX_EXE}")
|
||||
endif()
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
${_aui_cmake_options}
|
||||
-DAUI_INSTALL_RUNTIME_DEPENDENCIES=OFF
|
||||
-DAUIB_NO_PRECOMPILED=TRUE
|
||||
-DAUIB_DISABLE=ON
|
||||
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
|
||||
)
|
||||
|
||||
vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin" "${CURRENT_INSTALLED_DIR}/debug/bin")
|
||||
|
||||
vcpkg_cmake_install()
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/AUI/api.h"
|
||||
"#pragma once"
|
||||
"#pragma once\n\n#ifndef AUI_STATIC\n#define AUI_STATIC\n#endif"
|
||||
)
|
||||
endif()
|
||||
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/bin/aui.toolbox${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
|
||||
vcpkg_copy_tools(TOOL_NAMES aui.toolbox AUTO_CLEAN)
|
||||
endif()
|
||||
|
||||
# Remove empty folders
|
||||
function(_aui_prune_empty_dirs _root)
|
||||
file(GLOB _aui_children "${_root}/*")
|
||||
foreach(_aui_child IN LISTS _aui_children)
|
||||
if(IS_DIRECTORY "${_aui_child}")
|
||||
_aui_prune_empty_dirs("${_aui_child}")
|
||||
file(GLOB _aui_grandchildren "${_aui_child}/*")
|
||||
if(NOT _aui_grandchildren)
|
||||
file(REMOVE_RECURSE "${_aui_child}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endfunction()
|
||||
_aui_prune_empty_dirs("${CURRENT_PACKAGES_DIR}")
|
||||
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/aui-config.cmake")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/aui")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/aui-config.cmake" "${CURRENT_PACKAGES_DIR}/share/aui/aui-config.cmake")
|
||||
endif()
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/aui-config.cmake")
|
||||
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/cmake")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/aui")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/cmake" "${CURRENT_PACKAGES_DIR}/share/aui/cmake")
|
||||
endif()
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/cmake")
|
||||
if(EXISTS "${CURRENT_PACKAGES_DIR}/platform")
|
||||
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/aui")
|
||||
file(RENAME "${CURRENT_PACKAGES_DIR}/platform" "${CURRENT_PACKAGES_DIR}/share/aui/platform")
|
||||
endif()
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/platform")
|
||||
|
||||
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/usage" "${CURRENT_PACKAGES_DIR}/share/${PORT}/usage" COPYONLY)
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
The package aui provides CMake targets:
|
||||
|
||||
find_package(aui CONFIG REQUIRED COMPONENTS core views ...)
|
||||
|
||||
# Configure an application using AUI helper functions:
|
||||
aui_executable(${PROJECT_NAME})
|
||||
# Link against AUI component targets
|
||||
aui_link(${PROJECT_NAME} PRIVATE aui::core aui::views)
|
||||
aui_compile_assets(${PROJECT_NAME})
|
||||
aui_app(TARGET ${PROJECT_NAME} NAME "My App" VENDOR "vcpkg"
|
||||
ICON "assets/img/icon.svg"
|
||||
ANDROID_PACKAGE "org.vcpkg.auitest")
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
{
|
||||
"name": "aui",
|
||||
"version": "7.1.2",
|
||||
"description": "Declarative UI toolkit for modern C++20",
|
||||
"homepage": "https://github.com/aui-framework/aui",
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": [
|
||||
{
|
||||
"name": "aui-toolbox",
|
||||
"host": true,
|
||||
"platform": "!native"
|
||||
},
|
||||
"curl",
|
||||
{
|
||||
"name": "dbus",
|
||||
"platform": "linux"
|
||||
},
|
||||
"fmt",
|
||||
{
|
||||
"name": "fontconfig",
|
||||
"platform": "linux"
|
||||
},
|
||||
"freetype",
|
||||
{
|
||||
"name": "glew",
|
||||
"platform": "windows | linux | osx"
|
||||
},
|
||||
"glm",
|
||||
{
|
||||
"name": "gtk3",
|
||||
"platform": "linux"
|
||||
},
|
||||
{
|
||||
"name": "libbacktrace",
|
||||
"platform": "linux"
|
||||
},
|
||||
"libnsgif",
|
||||
"libogg",
|
||||
"libvorbis",
|
||||
"libwebp",
|
||||
{
|
||||
"name": "libx11",
|
||||
"platform": "linux"
|
||||
},
|
||||
"lunasvg",
|
||||
"minizip",
|
||||
{
|
||||
"name": "oboe",
|
||||
"platform": "android"
|
||||
},
|
||||
"openssl",
|
||||
"opus",
|
||||
{
|
||||
"name": "pulseaudio",
|
||||
"platform": "linux"
|
||||
},
|
||||
"range-v3",
|
||||
"soxr",
|
||||
"sqlite3",
|
||||
"stb",
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
},
|
||||
"zlib"
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index bb01a0d..82ef7f7 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -87,7 +87,7 @@
|
||||
if (BUILD_FRAMEWORK)
|
||||
set_target_properties (${PROJECT_NAME} PROPERTIES FRAMEWORK TRUE)
|
||||
-elseif (NOT WIN32)
|
||||
+else ()
|
||||
set (TARGET_PCS ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc)
|
||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in ${TARGET_PCS})
|
||||
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
|
||||
endif ()
|
||||
@@ -111,7 +111,7 @@
|
||||
if (BUILD_FRAMEWORK)
|
||||
set_target_properties (${LSR} PROPERTIES FRAMEWORK TRUE)
|
||||
- elseif (NOT WIN32)
|
||||
+ else ()
|
||||
set (TARGET_PCS "${TARGET_PCS} ${CMAKE_CURRENT_BINARY_DIR}/${LSR}.pc")
|
||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/${LSR}.pc.in ${CMAKE_CURRENT_BINARY_DIR}/${LSR}.pc)
|
||||
install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${LSR}.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
|
||||
endif ()
|
||||
|
|
@ -1,40 +1,41 @@
|
|||
vcpkg_from_sourceforge(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO soxr
|
||||
FILENAME "soxr-0.1.3-Source.tar.xz"
|
||||
SHA512 f4883ed298d5650399283238aac3dbe78d605b988246bea51fa343d4a8ce5ce97c6e143f6c3f50a3ff81795d9c19e7a07217c586d4020f6ced102aceac46aaa8
|
||||
PATCHES
|
||||
001_initialize-resampler.patch
|
||||
002_disable_warning.patch
|
||||
003_detect_arm.patch
|
||||
)
|
||||
|
||||
vcpkg_check_features(
|
||||
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
openmp WITH_OPENMP
|
||||
lsr-bindings WITH_LSR_BINDINGS
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" BUILD_SHARED_RUNTIME)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_SHARED_RUNTIME=${BUILD_SHARED_RUNTIME}
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_LibAVUtil=TRUE
|
||||
${FEATURE_OPTIONS}
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
|
||||
file(INSTALL "${SOURCE_PATH}/LICENCE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/doc")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/doc")
|
||||
|
||||
vcpkg_fixup_pkgconfig()
|
||||
vcpkg_from_sourceforge(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO soxr
|
||||
FILENAME "soxr-0.1.3-Source.tar.xz"
|
||||
SHA512 f4883ed298d5650399283238aac3dbe78d605b988246bea51fa343d4a8ce5ce97c6e143f6c3f50a3ff81795d9c19e7a07217c586d4020f6ced102aceac46aaa8
|
||||
PATCHES
|
||||
001_initialize-resampler.patch
|
||||
002_disable_warning.patch
|
||||
003_detect_arm.patch
|
||||
004_install-pkgconfig-windows.patch
|
||||
)
|
||||
|
||||
vcpkg_check_features(
|
||||
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
FEATURES
|
||||
openmp WITH_OPENMP
|
||||
lsr-bindings WITH_LSR_BINDINGS
|
||||
)
|
||||
|
||||
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "dynamic" BUILD_SHARED_RUNTIME)
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${SOURCE_PATH}"
|
||||
OPTIONS
|
||||
-DBUILD_TESTS=OFF
|
||||
-DBUILD_EXAMPLES=OFF
|
||||
-DBUILD_SHARED_RUNTIME=${BUILD_SHARED_RUNTIME}
|
||||
-DCMAKE_DISABLE_FIND_PACKAGE_LibAVUtil=TRUE
|
||||
${FEATURE_OPTIONS}
|
||||
)
|
||||
|
||||
vcpkg_cmake_install()
|
||||
|
||||
file(INSTALL "${SOURCE_PATH}/LICENCE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
|
||||
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/doc")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/doc")
|
||||
|
||||
vcpkg_fixup_pkgconfig()
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "soxr",
|
||||
"version": "0.1.3",
|
||||
"port-version": 8,
|
||||
"port-version": 9,
|
||||
"description": "High quality audio resampling",
|
||||
"homepage": "https://sourceforge.net/projects/soxr/",
|
||||
"dependencies": [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
||||
|
||||
vcpkg_find_acquire_program(PKGCONFIG)
|
||||
|
||||
vcpkg_host_path_list(PREPEND ENV{PATH} "${CURRENT_HOST_INSTALLED_DIR}/tools/aui-toolbox")
|
||||
|
||||
vcpkg_cmake_configure(
|
||||
SOURCE_PATH "${CURRENT_PORT_DIR}/project"
|
||||
OPTIONS
|
||||
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
|
||||
)
|
||||
vcpkg_cmake_build()
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
cmake_minimum_required(VERSION 3.16)
|
||||
project(aui-test VERSION 0.0.1 LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(aui CONFIG REQUIRED COMPONENTS core views curl json crypt updater)
|
||||
|
||||
aui_executable(${PROJECT_NAME})
|
||||
aui_link(${PROJECT_NAME} PRIVATE aui::core aui::views aui::updater)
|
||||
aui_compile_assets(${PROJECT_NAME})
|
||||
aui_app(TARGET ${PROJECT_NAME} NAME "AUI CI Test" VENDOR "vcpkg"
|
||||
ICON "assets/img/icon.svg"
|
||||
ANDROID_PACKAGE "org.vcpkg.auitest")
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256">
|
||||
<rect width="256" height="256" rx="32" fill="#2f6fed"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 153 B |
|
|
@ -0,0 +1,7 @@
|
|||
#include <AUI/Common/AString.h>
|
||||
#include <AUI/Platform/Entry.h>
|
||||
|
||||
AUI_ENTRY {
|
||||
AString s = AString::number(42);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"name": "vcpkg-ci-aui",
|
||||
"version-string": "ci",
|
||||
"description": "Validates aui",
|
||||
"dependencies": [
|
||||
"aui",
|
||||
{
|
||||
"name": "aui-toolbox",
|
||||
"host": true
|
||||
},
|
||||
{
|
||||
"name": "vcpkg-cmake",
|
||||
"host": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "f26df47f4fc22a0920fcdf6311fdf52dadffb9bf",
|
||||
"version": "7.1.2",
|
||||
"port-version": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "30673fde524070c2155f0a2c43628123dfaf7ab6",
|
||||
"version": "7.1.2",
|
||||
"port-version": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -416,6 +416,14 @@
|
|||
"baseline": "4.1.4",
|
||||
"port-version": 0
|
||||
},
|
||||
"aui": {
|
||||
"baseline": "7.1.2",
|
||||
"port-version": 0
|
||||
},
|
||||
"aui-toolbox": {
|
||||
"baseline": "7.1.2",
|
||||
"port-version": 0
|
||||
},
|
||||
"aurora": {
|
||||
"baseline": "2017-06-21-c75699d2a8caa726260c29b6d7a0fd35f8f28933",
|
||||
"port-version": 2
|
||||
|
|
@ -9594,7 +9602,7 @@
|
|||
},
|
||||
"soxr": {
|
||||
"baseline": "0.1.3",
|
||||
"port-version": 8
|
||||
"port-version": 9
|
||||
},
|
||||
"spaceland": {
|
||||
"baseline": "7.8.2",
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "38edca408abad1f7d8e84363d2b8e31d982d6952",
|
||||
"version": "0.1.3",
|
||||
"port-version": 9
|
||||
},
|
||||
{
|
||||
"git-tree": "89f01ea88aee3a0468ba3bf335a7a537a105cae1",
|
||||
"version": "0.1.3",
|
||||
|
|
|
|||
Loading…
Reference in New Issue