set( YAZE_APP_GFX_SRC app/gfx/arena.cc app/gfx/atlas_renderer.cc app/gfx/background_buffer.cc app/gfx/bitmap.cc app/gfx/compression.cc app/gfx/memory_pool.cc app/gfx/performance/performance_dashboard.cc app/gfx/performance/performance_profiler.cc app/gfx/scad_format.cc app/gfx/snes_palette.cc app/gfx/snes_tile.cc app/gfx/snes_color.cc app/gfx/texture_atlas.cc app/gfx/tilemap.cc app/gfx/graphics_optimizer.cc app/gfx/bpp_format_manager.cc app/gfx/palette_manager.cc app/gfx/backend/sdl2_renderer.cc ) # ============================================================================== # Yaze Graphics Library # ============================================================================== # This library contains all graphics-related functionality: # - Bitmap manipulation # - SNES tile/palette handling # - Compression/decompression # - Arena memory management # - Atlas rendering # - Performance profiling # # Dependencies: yaze_util, SDL2, Abseil # ============================================================================== add_library(yaze_gfx STATIC ${YAZE_APP_GFX_SRC}) target_precompile_headers(yaze_gfx PRIVATE "$<$:${CMAKE_SOURCE_DIR}/src/yaze_pch.h>" ) target_include_directories(yaze_gfx PUBLIC ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/lib ${CMAKE_SOURCE_DIR}/incl ${SDL2_INCLUDE_DIR} ${PROJECT_BINARY_DIR} ) target_link_libraries(yaze_gfx PUBLIC yaze_util yaze_common ${ABSL_TARGETS} ${SDL_TARGETS} ) # Conditionally add PNG support if(PNG_FOUND) target_include_directories(yaze_gfx PUBLIC ${PNG_INCLUDE_DIRS}) target_link_libraries(yaze_gfx PUBLIC ${PNG_LIBRARIES}) endif() set_target_properties(yaze_gfx PROPERTIES POSITION_INDEPENDENT_CODE ON ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" ) # Platform-specific compile definitions if(UNIX AND NOT APPLE) target_compile_definitions(yaze_gfx PRIVATE linux stricmp=strcasecmp) elseif(APPLE) target_compile_definitions(yaze_gfx PRIVATE MACOS) elseif(WIN32) target_compile_definitions(yaze_gfx PRIVATE WINDOWS) endif() message(STATUS "✓ yaze_gfx library configured")