55 lines
1.4 KiB
CMake
55 lines
1.4 KiB
CMake
# Copyright (c) 2025 Dominic Masters
|
|
#
|
|
# This software is released under the MIT License.
|
|
# https://opensource.org/licenses/MIT
|
|
|
|
# Setup
|
|
cmake_minimum_required(VERSION 3.13)
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
|
|
# Prep cache
|
|
set(DUSK_CACHE_TARGET "dusk-target")
|
|
|
|
# Platform configs
|
|
|
|
# Build variables
|
|
set(DUSK_ROOT_DIR "${CMAKE_SOURCE_DIR}")
|
|
set(DUSK_BUILD_DIR "${CMAKE_BINARY_DIR}")
|
|
set(DUSK_SOURCES_DIR "${DUSK_ROOT_DIR}/src")
|
|
set(DUSK_TEMP_DIR "${DUSK_BUILD_DIR}/temp")
|
|
set(DUSK_TOOLS_DIR "${DUSK_ROOT_DIR}/tools")
|
|
set(DUSK_ASSETS_DIR "${DUSK_ROOT_DIR}/assets")
|
|
set(DUSK_ASSETS_BUILD_DIR "${DUSK_BUILD_DIR}/assets")
|
|
set(DUSK_GENERATED_HEADERS_DIR "${DUSK_BUILD_DIR}/generated")
|
|
set(DUSK_TARGET_NAME "Dusk" CACHE INTERNAL ${DUSK_CACHE_TARGET})
|
|
set(DUSK_BUILD_BINARY ${DUSK_BUILD_DIR}/Dusk CACHE INTERNAL ${DUSK_CACHE_TARGET})
|
|
set(DUSK_ASSETS "" CACHE INTERNAL ${DUSK_CACHE_TARGET})
|
|
|
|
# Create directories
|
|
file(MAKE_DIRECTORY ${DUSK_GENERATED_HEADERS_DIR})
|
|
file(MAKE_DIRECTORY ${DUSK_ASSETS_BUILD_DIR})
|
|
|
|
# Init Project
|
|
project(${DUSK_TARGET_NAME}
|
|
VERSION 1.0.0
|
|
LANGUAGES C
|
|
)
|
|
|
|
# Executable
|
|
add_executable(${DUSK_TARGET_NAME})
|
|
|
|
# Get Libraries
|
|
add_subdirectory(lib)
|
|
|
|
# Add tools
|
|
add_subdirectory(tools)
|
|
|
|
# Add code
|
|
add_subdirectory(src)
|
|
|
|
# Include generated headers
|
|
target_include_directories(${DUSK_TARGET_NAME}
|
|
PUBLIC
|
|
${DUSK_GENERATED_HEADERS_DIR}
|
|
) |