metaforce/hecl/ApplicationTools.cmake

71 lines
3.0 KiB
CMake

include_guard(GLOBAL)
#file(RELATIVE_PATH REL_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_LIST_DIR})
#include_directories(${CMAKE_CURRENT_BINARY_DIR}/${REL_PATH})
#
#unset(HECL_APPLICATION_REPS_TARGETS_LIST CACHE)
#unset(HECL_APPLICATION_REPS_INCLUDES_LIST CACHE)
#unset(HECL_APPLICATION_PIPELINE_REPS_UNIVERSAL CACHE)
#unset(HECL_APPLICATION_PIPELINE_REPS CACHE)
#unset(HECL_APPLICATION_STAGE_REPS CACHE)
#
## add_pipeline_rep(my::fully::qualified::class my_class_header.hpp [UNIVERSAL])
#function(add_pipeline_rep name header)
# if(IS_ABSOLUTE ${header})
# set(theHeader ${header})
# else()
# set(theHeader ${CMAKE_CURRENT_SOURCE_DIR}/${header})
# endif()
# if (NOT ${theHeader} IN_LIST HECL_APPLICATION_REPS_INCLUDES_LIST)
# set(HECL_APPLICATION_REPS_INCLUDES_LIST "${HECL_APPLICATION_REPS_INCLUDES_LIST};${theHeader}" CACHE INTERNAL "")
# endif()
# if ("${ARGV2}" STREQUAL "UNIVERSAL")
# set(HECL_APPLICATION_PIPELINE_REPS_UNIVERSAL "${HECL_APPLICATION_PIPELINE_REPS_UNIVERSAL};${name}" CACHE INTERNAL "")
# else()
# set(HECL_APPLICATION_PIPELINE_REPS "${HECL_APPLICATION_PIPELINE_REPS};${name}" CACHE INTERNAL "")
# endif()
#endfunction()
#
## add_stage_rep(my::fully::qualified::class my_class_header.hpp)
#function(add_stage_rep name header)
# if(IS_ABSOLUTE ${header})
# set(theHeader ${header})
# else()
# set(theHeader ${CMAKE_CURRENT_SOURCE_DIR}/${header})
# endif()
# if (NOT ${theHeader} IN_LIST HECL_APPLICATION_REPS_INCLUDES_LIST)
# set(HECL_APPLICATION_REPS_INCLUDES_LIST "${HECL_APPLICATION_REPS_INCLUDES_LIST};${theHeader}" CACHE INTERNAL "")
# endif()
# set(HECL_APPLICATION_STAGE_REPS "${HECL_APPLICATION_STAGE_REPS};${name}" CACHE INTERNAL "")
#endfunction()
#
#function(add_shader_target target)
# if (NOT ${target} IN_LIST HECL_APPLICATION_REPS_TARGETS_LIST)
# set(HECL_APPLICATION_REPS_TARGETS_LIST "${HECL_APPLICATION_REPS_TARGETS_LIST};${target}" CACHE INTERNAL "")
# endif()
#endfunction()
#
#function(add_shader file)
# get_filename_component(name ${file} NAME)
# get_filename_component(dir ${file} DIRECTORY)
# shaderc(${CMAKE_CURRENT_BINARY_DIR}/${dir}/shader_${name} ${file}.shader)
# add_stage_rep(shader_${name} ${CMAKE_CURRENT_BINARY_DIR}/${dir}/shader_${name}.hpp)
# add_pipeline_rep(shader_${name} ${CMAKE_CURRENT_BINARY_DIR}/${dir}/shader_${name}.hpp UNIVERSAL)
# add_library(shader_${name} ${CMAKE_CURRENT_BINARY_DIR}/${dir}/shader_${name}.hpp ${CMAKE_CURRENT_BINARY_DIR}/${dir}/shader_${name}.cpp)
# add_shader_target(shader_${name})
#endfunction()
#
#function(add_special_shader name)
# add_stage_rep(${name} ${name}.hpp)
# add_pipeline_rep(${name} ${name}.hpp UNIVERSAL)
# add_library(${name} ${name}.hpp ${ARGN})
# add_shader_target(${name})
#endfunction()
include(ExternalProject)
ExternalProject_Add(bintoc
SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/bintoc"
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --config Release --target install)
include(${CMAKE_CURRENT_LIST_DIR}/bintoc/bintocHelpers.cmake)