Refactor CMake configuration for ImGuiTestEngine and feature flags
- Updated the CMake configuration to use target_compile_definitions for ImGuiTestEngine, improving clarity and maintainability. - Introduced IMGUI_TEST_ENGINE_DEFINITIONS to streamline the definition process for targets linking to ImGuiTestEngine. - Modified feature flags in features.h to conditionally enable the native file dialog based on the YAZE_ENABLE_NFD flag, enhancing flexibility in feature management.
This commit is contained in:
@@ -111,14 +111,14 @@ include(cmake/sdl2.cmake)
|
|||||||
# Asar
|
# Asar
|
||||||
include(cmake/asar.cmake)
|
include(cmake/asar.cmake)
|
||||||
|
|
||||||
# ImGui
|
|
||||||
include(cmake/imgui.cmake)
|
|
||||||
|
|
||||||
# Google Test (if needed for main app integration)
|
# Google Test (if needed for main app integration)
|
||||||
if (YAZE_BUILD_TESTS)
|
if (YAZE_BUILD_TESTS)
|
||||||
include(cmake/gtest.cmake)
|
include(cmake/gtest.cmake)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# ImGui (after minimal build flags are set)
|
||||||
|
include(cmake/imgui.cmake)
|
||||||
|
|
||||||
# Project Files
|
# Project Files
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,14 @@ if(YAZE_ENABLE_UI_TESTS)
|
|||||||
target_link_libraries(ImGuiTestEngine PUBLIC ImGui)
|
target_link_libraries(ImGuiTestEngine PUBLIC ImGui)
|
||||||
|
|
||||||
# Enable test engine definitions only when UI tests are enabled
|
# Enable test engine definitions only when UI tests are enabled
|
||||||
add_definitions("-DIMGUI_ENABLE_TEST_ENGINE -DIMGUI_TEST_ENGINE_ENABLE_COROUTINE_STDTHREAD_IMPL=1")
|
target_compile_definitions(ImGuiTestEngine PUBLIC
|
||||||
|
IMGUI_ENABLE_TEST_ENGINE=1
|
||||||
|
IMGUI_TEST_ENGINE_ENABLE_COROUTINE_STDTHREAD_IMPL=1)
|
||||||
|
|
||||||
|
# Also define for targets that link to ImGuiTestEngine
|
||||||
|
set(IMGUI_TEST_ENGINE_DEFINITIONS
|
||||||
|
IMGUI_ENABLE_TEST_ENGINE=1
|
||||||
|
IMGUI_TEST_ENGINE_ENABLE_COROUTINE_STDTHREAD_IMPL=1)
|
||||||
|
|
||||||
# Make ImGuiTestEngine target available
|
# Make ImGuiTestEngine target available
|
||||||
set(IMGUI_TEST_ENGINE_TARGET ImGuiTestEngine)
|
set(IMGUI_TEST_ENGINE_TARGET ImGuiTestEngine)
|
||||||
@@ -24,6 +31,7 @@ else()
|
|||||||
# Create empty variables when UI tests are disabled
|
# Create empty variables when UI tests are disabled
|
||||||
set(IMGUI_TEST_ENGINE_SOURCES "")
|
set(IMGUI_TEST_ENGINE_SOURCES "")
|
||||||
set(IMGUI_TEST_ENGINE_TARGET "")
|
set(IMGUI_TEST_ENGINE_TARGET "")
|
||||||
|
set(IMGUI_TEST_ENGINE_DEFINITIONS "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(
|
set(
|
||||||
|
|||||||
@@ -94,7 +94,9 @@ if(YAZE_ENABLE_UI_TESTS)
|
|||||||
if(TARGET ImGuiTestEngine)
|
if(TARGET ImGuiTestEngine)
|
||||||
target_include_directories(yaze PUBLIC ${CMAKE_SOURCE_DIR}/src/lib/imgui_test_engine)
|
target_include_directories(yaze PUBLIC ${CMAKE_SOURCE_DIR}/src/lib/imgui_test_engine)
|
||||||
target_link_libraries(yaze PUBLIC ImGuiTestEngine)
|
target_link_libraries(yaze PUBLIC ImGuiTestEngine)
|
||||||
target_compile_definitions(yaze PRIVATE YAZE_ENABLE_IMGUI_TEST_ENGINE=1)
|
target_compile_definitions(yaze PRIVATE
|
||||||
|
YAZE_ENABLE_IMGUI_TEST_ENGINE=1
|
||||||
|
${IMGUI_TEST_ENGINE_DEFINITIONS})
|
||||||
else()
|
else()
|
||||||
target_compile_definitions(yaze PRIVATE YAZE_ENABLE_IMGUI_TEST_ENGINE=0)
|
target_compile_definitions(yaze PRIVATE YAZE_ENABLE_IMGUI_TEST_ENGINE=0)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -39,7 +39,11 @@ class FeatureFlags {
|
|||||||
bool kLogToConsole = false;
|
bool kLogToConsole = false;
|
||||||
|
|
||||||
// Use NFD (Native File Dialog) instead of bespoke file dialog implementation.
|
// Use NFD (Native File Dialog) instead of bespoke file dialog implementation.
|
||||||
|
#if defined(YAZE_ENABLE_NFD) && YAZE_ENABLE_NFD
|
||||||
bool kUseNativeFileDialog = true;
|
bool kUseNativeFileDialog = true;
|
||||||
|
#else
|
||||||
|
bool kUseNativeFileDialog = false;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Overworld flags
|
// Overworld flags
|
||||||
struct Overworld {
|
struct Overworld {
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ void ItemLabel(absl::string_view title, ItemLabelFlags flags) {
|
|||||||
const ImGuiStyle& style = ImGui::GetStyle();
|
const ImGuiStyle& style = ImGui::GetStyle();
|
||||||
float fullWidth = ImGui::GetContentRegionAvail().x;
|
float fullWidth = ImGui::GetContentRegionAvail().x;
|
||||||
float itemWidth = ImGui::CalcItemWidth() + style.ItemSpacing.x;
|
float itemWidth = ImGui::CalcItemWidth() + style.ItemSpacing.x;
|
||||||
ImVec2 textSize = ImGui::CalcTextSize(title.begin(), title.end());
|
ImVec2 textSize = ImGui::CalcTextSize(title.data(), title.data() + title.size());
|
||||||
ImRect textRect;
|
ImRect textRect;
|
||||||
textRect.Min = ImGui::GetCursorScreenPos();
|
textRect.Min = ImGui::GetCursorScreenPos();
|
||||||
if (flags & ItemLabelFlag::Right) textRect.Min.x = textRect.Min.x + itemWidth;
|
if (flags & ItemLabelFlag::Right) textRect.Min.x = textRect.Min.x + itemWidth;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
#include <cmath>
|
#include <cmath>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
#ifdef YAZE_LIB_PNG
|
#if YAZE_LIB_PNG == 1
|
||||||
#include <zlib.h>
|
#include <zlib.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ namespace util {
|
|||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
#ifdef YAZE_LIB_PNG
|
#if YAZE_LIB_PNG == 1
|
||||||
uint32_t crc32(const std::vector<uint8_t> &data) {
|
uint32_t crc32(const std::vector<uint8_t> &data) {
|
||||||
uint32_t crc = ::crc32(0L, Z_NULL, 0);
|
uint32_t crc = ::crc32(0L, Z_NULL, 0);
|
||||||
return ::crc32(crc, data.data(), data.size());
|
return ::crc32(crc, data.data(), data.size());
|
||||||
|
|||||||
Reference in New Issue
Block a user