@@ -203,15 +203,17 @@ set(PROJECT_RESOURCES_BINARY_DIR "$<TARGET_FILE_DIR:${PROJECT_NAME}>/resources")
|
|||||||
if(EXISTS "${PROJECT_RESOURCES_DIR}")
|
if(EXISTS "${PROJECT_RESOURCES_DIR}")
|
||||||
file(GLOB_RECURSE PROJECT_RESOURCE_FILES CONFIGURE_DEPENDS
|
file(GLOB_RECURSE PROJECT_RESOURCE_FILES CONFIGURE_DEPENDS
|
||||||
"${PROJECT_RESOURCES_DIR}/*")
|
"${PROJECT_RESOURCES_DIR}/*")
|
||||||
add_custom_target(copy_resources ALL
|
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
||||||
COMMAND ${CMAKE_COMMAND}
|
add_custom_target(copy_resources ALL
|
||||||
-DSRC_DIR="${PROJECT_RESOURCES_DIR}"
|
COMMAND ${CMAKE_COMMAND}
|
||||||
-DDST_DIR="${PROJECT_RESOURCES_BINARY_DIR}"
|
-DSRC_DIR="${PROJECT_RESOURCES_DIR}"
|
||||||
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/copy_resources.cmake"
|
-DDST_DIR="${PROJECT_RESOURCES_BINARY_DIR}"
|
||||||
WORKING_DIRECTORY "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/copy_resources.cmake"
|
||||||
DEPENDS ${PROJECT_RESOURCE_FILES}
|
WORKING_DIRECTORY "$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||||
COMMENT "Copying resources directory")
|
DEPENDS ${PROJECT_RESOURCE_FILES}
|
||||||
add_dependencies(${PROJECT_NAME} copy_resources)
|
COMMENT "Copying resources directory")
|
||||||
|
add_dependencies(${PROJECT_NAME} copy_resources)
|
||||||
|
endif()
|
||||||
set(HAS_PROJECT_RESOURCES TRUE)
|
set(HAS_PROJECT_RESOURCES TRUE)
|
||||||
else()
|
else()
|
||||||
set(HAS_PROJECT_RESOURCES FALSE)
|
set(HAS_PROJECT_RESOURCES FALSE)
|
||||||
@@ -240,12 +242,18 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
|
|||||||
if(HAS_PROJECT_RESOURCES)
|
if(HAS_PROJECT_RESOURCES)
|
||||||
target_link_options(${PROJECT_NAME} PRIVATE
|
target_link_options(${PROJECT_NAME} PRIVATE
|
||||||
"--preload-file"
|
"--preload-file"
|
||||||
"${PROJECT_RESOURCES_BINARY_DIR}@resources"
|
"${PROJECT_RESOURCES_DIR}@resources"
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
set_target_properties(${PROJECT_NAME} PROPERTIES
|
set_target_properties(${PROJECT_NAME} PROPERTIES
|
||||||
OUTPUT_NAME "index"
|
OUTPUT_NAME "index"
|
||||||
SUFFIX ".html")
|
SUFFIX ".html")
|
||||||
|
|
||||||
|
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND}
|
||||||
|
-DBIN_DIR="$<TARGET_FILE_DIR:${PROJECT_NAME}>"
|
||||||
|
-P "${CMAKE_CURRENT_SOURCE_DIR}/cmake/create_index_zip.cmake"
|
||||||
|
COMMENT "Creating snivy-web.zip from Emscripten output")
|
||||||
else()
|
else()
|
||||||
find_package(OpenGL REQUIRED COMPONENTS OpenGL)
|
find_package(OpenGL REQUIRED COMPONENTS OpenGL)
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
|
target_link_libraries(${PROJECT_NAME} PRIVATE OpenGL::GL)
|
||||||
|
|||||||
@@ -9,13 +9,13 @@ This Is A Video Game Where You Feed The Snivy.
|
|||||||
## Build
|
## Build
|
||||||
|
|
||||||
After cloning and enter the repository's directory, make sure to initialize the submodules:
|
After cloning and enter the repository's directory, make sure to initialize the submodules:
|
||||||
|
|
||||||
```git submodule update --init --recursive```
|
```git submodule update --init --recursive```
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
Visual Studio is recommended for build.
|
Visual Studio is recommended for build.
|
||||||
|
|
||||||
### Linux
|
### Linux
|
||||||
|
|
||||||
```
|
```
|
||||||
mkdir build
|
mkdir build
|
||||||
cd build
|
cd build
|
||||||
@@ -23,4 +23,7 @@ cmake ..
|
|||||||
make
|
make
|
||||||
```
|
```
|
||||||
|
|
||||||
If using VSCode, several tasks are available to quickly run and build.
|
If using VSCode, several tasks are available to quickly run and build.
|
||||||
|
|
||||||
|
### Emscripten
|
||||||
|
Run the VSCode "web" task. Make sure you have the Emscripten SDK accessible at the EMSDK path variable.
|
||||||
28
cmake/create_index_zip.cmake
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
if(NOT DEFINED BIN_DIR OR BIN_DIR STREQUAL "")
|
||||||
|
message(FATAL_ERROR "BIN_DIR is required")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(ARCHIVE_PATH "${BIN_DIR}/snivy-web.zip")
|
||||||
|
file(REMOVE "${ARCHIVE_PATH}")
|
||||||
|
|
||||||
|
file(GLOB INDEX_OUTPUTS "${BIN_DIR}/index.*")
|
||||||
|
set(FILES_TO_ZIP "")
|
||||||
|
foreach(FILE_PATH IN LISTS INDEX_OUTPUTS)
|
||||||
|
if(NOT FILE_PATH STREQUAL ARCHIVE_PATH)
|
||||||
|
get_filename_component(FILE_NAME "${FILE_PATH}" NAME)
|
||||||
|
list(APPEND FILES_TO_ZIP "${FILE_NAME}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if(FILES_TO_ZIP)
|
||||||
|
execute_process(
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E tar cf "snivy-web.zip" --format=zip ${FILES_TO_ZIP}
|
||||||
|
WORKING_DIRECTORY "${BIN_DIR}"
|
||||||
|
RESULT_VARIABLE ZIP_RESULT
|
||||||
|
)
|
||||||
|
if(NOT ZIP_RESULT EQUAL 0)
|
||||||
|
message(FATAL_ERROR "Failed creating ${ARCHIVE_PATH}")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
message(WARNING "No index.* files found in ${BIN_DIR}; skipping snivy-web.zip creation")
|
||||||
|
endif()
|
||||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 71 KiB |