How did I get here?
This commit is contained in:
118
CMakeLists.txt
118
CMakeLists.txt
@@ -1,16 +1,124 @@
|
||||
# Copyright (c) 2022 Dominic Masters
|
||||
# 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)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
add_library(dawn STATIC
|
||||
src/funcs.c
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)
|
||||
|
||||
if(NOT DEFINED DAWN_TARGET_SYSTEM)
|
||||
set(DAWN_TARGET_SYSTEM "linux")
|
||||
# set(DAWN_TARGET_SYSTEM "psp")
|
||||
endif()
|
||||
|
||||
# Prep cache
|
||||
set(DAWN_CACHE_TARGET "dusk-target")
|
||||
|
||||
# Build variables
|
||||
set(DAWN_ROOT_DIR "${CMAKE_SOURCE_DIR}")
|
||||
set(DAWN_BUILD_DIR "${CMAKE_BINARY_DIR}")
|
||||
set(DAWN_SOURCES_DIR "${DAWN_ROOT_DIR}/src")
|
||||
set(DAWN_TEMP_DIR "${DAWN_BUILD_DIR}/temp")
|
||||
set(DAWN_TOOLS_DIR "${DAWN_ROOT_DIR}/tools")
|
||||
set(DAWN_DATA_DIR "${DAWN_ROOT_DIR}/data")
|
||||
set(DAWN_ASSETS_DIR "${DAWN_ROOT_DIR}/assets")
|
||||
set(DAWN_BUILT_ASSETS_DIR "${DAWN_BUILD_DIR}/built_assets" CACHE INTERNAL ${DAWN_CACHE_TARGET})
|
||||
set(DAWN_GENERATED_HEADERS_DIR "${DAWN_BUILD_DIR}/generated")
|
||||
set(DAWN_TARGET_NAME "Dusk" CACHE INTERNAL ${DAWN_CACHE_TARGET})
|
||||
set(DAWN_BUILD_BINARY ${DAWN_BUILD_DIR}/Dusk CACHE INTERNAL ${DAWN_CACHE_TARGET})
|
||||
set(DAWN_ASSETS "" CACHE INTERNAL ${DAWN_CACHE_TARGET})
|
||||
|
||||
# Create directories
|
||||
file(MAKE_DIRECTORY ${DAWN_GENERATED_HEADERS_DIR})
|
||||
|
||||
# Find packages
|
||||
find_package(Python3 COMPONENTS Interpreter REQUIRED)
|
||||
|
||||
# Toolchains
|
||||
if(DAWN_TARGET_SYSTEM STREQUAL "psp")
|
||||
find_package(pspsdk REQUIRED)
|
||||
endif()
|
||||
|
||||
# Init Project
|
||||
project(${DAWN_TARGET_NAME}
|
||||
VERSION 1.0.0
|
||||
LANGUAGES C CXX
|
||||
)
|
||||
|
||||
target_include_directories(dawn PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src)
|
||||
# Executable
|
||||
add_executable(${DAWN_TARGET_NAME})
|
||||
|
||||
# Add tools
|
||||
# add_subdirectory(tools)
|
||||
|
||||
# Assets
|
||||
# add_subdirectory(assets)
|
||||
|
||||
# Add libraries
|
||||
if(DAWN_TARGET_SYSTEM STREQUAL "linux")
|
||||
find_package(SDL2 REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
target_link_libraries(${DAWN_TARGET_NAME} PRIVATE
|
||||
SDL2
|
||||
OpenGL::GL
|
||||
GL
|
||||
)
|
||||
|
||||
elseif(DAWN_TARGET_SYSTEM STREQUAL "psp")
|
||||
find_package(SDL2 REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
target_link_libraries(${DAWN_TARGET_NAME} PUBLIC
|
||||
${SDL2_LIBRARIES}
|
||||
SDL2
|
||||
OpenGL::GL
|
||||
zip
|
||||
bz2
|
||||
z
|
||||
mbedtls
|
||||
mbedcrypto
|
||||
lzma
|
||||
)
|
||||
target_include_directories(${DAWN_TARGET_NAME} PRIVATE
|
||||
${SDL2_INCLUDE_DIRS}
|
||||
)
|
||||
endif()
|
||||
|
||||
# Add code
|
||||
add_subdirectory(src)
|
||||
|
||||
# Include generated headers
|
||||
target_include_directories(${DAWN_TARGET_NAME} PUBLIC
|
||||
${DAWN_GENERATED_HEADERS_DIR}
|
||||
)
|
||||
|
||||
# # Build assets
|
||||
# add_custom_target(DAWN_ASSETS_BUILT ALL
|
||||
# COMMAND
|
||||
# ${Python3_EXECUTABLE} ${DAWN_TOOLS_DIR}/assetstool/main.py
|
||||
# --assets ${DAWN_ASSETS_DIR}
|
||||
# --build-type wad
|
||||
# --output-assets ${DAWN_BUILT_ASSETS_DIR}
|
||||
# --output-file ${DAWN_BUILD_DIR}/dusk.dsk
|
||||
# --output-headers ${DAWN_GENERATED_HEADERS_DIR}/asset/assetbundle.h
|
||||
# --headers-dir ${DAWN_GENERATED_HEADERS_DIR}
|
||||
# --input ${DAWN_ASSETS}
|
||||
# )
|
||||
# add_dependencies(${DAWN_TARGET_NAME} DAWN_ASSETS_BUILT)
|
||||
|
||||
# # Postbuild
|
||||
# if(DAWN_TARGET_SYSTEM STREQUAL "psp")
|
||||
# create_pbp_file(
|
||||
# TARGET "${DAWN_TARGET_NAME}"
|
||||
# ICON_PATH NULL
|
||||
# BACKGROUND_PATH NULL
|
||||
# PREVIEW_PATH NULL
|
||||
# TITLE "${DAWN_TARGET_NAME}"
|
||||
# VERSION 01.00
|
||||
# )
|
||||
# endif()
|
Reference in New Issue
Block a user