51 lines
1.3 KiB
CMake
51 lines
1.3 KiB
CMake
cmake_minimum_required(VERSION 3.25)
|
|
|
|
set(CMAKE_CXX_STANDARD 23)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
project(farm-space LANGUAGES CXX)
|
|
|
|
add_executable(${PROJECT_NAME} src/main.cpp)
|
|
|
|
|
|
target_include_directories(${PROJECT_NAME} PRIVATE
|
|
${CMAKE_SOURCE_DIR}/dist/include
|
|
)
|
|
target_link_directories(${PROJECT_NAME} PUBLIC
|
|
${CMAKE_SOURCE_DIR}/dist/lib
|
|
)
|
|
|
|
target_link_libraries(${PROJECT_NAME} PUBLIC
|
|
varicle
|
|
raylib
|
|
assetpacker
|
|
)
|
|
|
|
if(EMSCRIPTEN)
|
|
# Output an HTML page instead of a raw binary
|
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
|
OUTPUT_NAME "index"
|
|
SUFFIX ".html"
|
|
)
|
|
|
|
# Pass Emscripten linker flags
|
|
target_link_options(${PROJECT_NAME} PRIVATE
|
|
"-sUSE_GLFW=3" # Needed for Raylib web builds
|
|
"-sASYNCIFY" # Allows main loop to yield to the browser
|
|
"--shell-file" "${CMAKE_CURRENT_SOURCE_DIR}/html/shell_custom.html" # (Optional) Custom HTML shell
|
|
# Pre-pack your assets directory into the WebAssembly virtual filesystem
|
|
"--preload-file" "${CMAKE_CURRENT_BINARY_DIR}/data.dat@/data.dat"
|
|
)
|
|
|
|
elseif(WIN32)
|
|
target_link_libraries(farm-space PRIVATE winmm opengl32 gdi32)
|
|
endif()
|
|
|
|
add_custom_target(run
|
|
COMMAND ${PROJECT_NAME}
|
|
DEPENDS ${PROJECT_NAME}
|
|
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
|
)
|
|
|