CMAKE_MINIMUM_REQUIRED( VERSION 3.13 )

SET( CMAKE_MODULE_PATH "." )
SET( EXECUTABLE_OUTPUT_PATH "bin" )
IF ( EMSCRIPTEN )
	# The asset generator runs during the build, so it must be a host executable.
	FIND_PROGRAM( GLSMAC_HOST_CXX NAMES c++ g++ clang++ REQUIRED NO_CMAKE_FIND_ROOT_PATH )
	SET( HOST_EMBEDDER "${CMAKE_CURRENT_BINARY_DIR}/bin/embedder" )
	ADD_CUSTOM_COMMAND(
		OUTPUT "${HOST_EMBEDDER}"
		COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/bin"
		COMMAND "${GLSMAC_HOST_CXX}" -std=c++23 "${CMAKE_CURRENT_SOURCE_DIR}/embedder.cpp" -o "${HOST_EMBEDDER}"
		DEPENDS embedder.cpp
		VERBATIM
	)
	ADD_CUSTOM_TARGET( embedder DEPENDS "${HOST_EMBEDDER}" )
	SET( GLSMAC_EMBEDDER_DEPENDENCY "${HOST_EMBEDDER}" PARENT_SCOPE )
	RETURN()
ENDIF ()
ADD_EXECUTABLE( embedder embedder.cpp )
IF ( CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "FastDebug" )
	TARGET_COMPILE_DEFINITIONS( embedder PRIVATE DEBUG=1 )
ENDIF ()
GLSMAC_CONFIGURE_TARGET( embedder )
