cmake_minimum_required(VERSION 4.0) project(factorygame C) set(CMAKE_C_STANDARD 23) find_package(PkgConfig REQUIRED) pkg_check_modules(SDL2 REQUIRED sdl2) add_executable(factorygame tiles/tile.c tiles/tile.h util/font.c util/font.h util/audio.c util/audio.h util/util.c util/util.h items/item.c items/item.h tiles/belt.c tiles/belt.h tiles/furnace.c tiles/furnace.h player/player.c player/player.h # Ensure the target is defined before linking tiles/tilecallbacks.c tiles/tilecallbacks.h main.c util/perlin.c util/perlin.h util/atlas.c util/atlas.h ) # Define the path to the assets folder set(ASSETS_SOURCE_DIR "${CMAKE_SOURCE_DIR}/assets") set(ASSETS_BINARY_DIR "${CMAKE_BINARY_DIR}/assets") # Copy assets directory always add_custom_target(copy_assets ALL COMMAND ${CMAKE_COMMAND} -E copy_directory "${ASSETS_SOURCE_DIR}" "${ASSETS_BINARY_DIR}" COMMENT "Copying assets directory to build output..." ) # Make sure factorygame depends on the assets being copied add_dependencies(factorygame copy_assets) target_link_libraries(factorygame SDL2 SDL2_ttf SDL2_image m)