diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7f9803eb..78108247 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,6 +26,7 @@ jobs: name: lovr.exe path: | build/Release/lovr.exe + build/Release/lovrc.bat build/Release/*.dll linux: name: Linux diff --git a/CMakeLists.txt b/CMakeLists.txt index d9aa740a..e9c770bd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -623,7 +623,17 @@ foreach(path ${LOVR_RESOURCES}) endforeach() # Add a custom target that is always out of date so libraries are always moved -add_custom_target(move_libraries ALL) +add_custom_target(move_files ALL) + +# Moves something from etc to the build directory +function(move_resource) + add_custom_command(TARGET move_files POST_BUILD + DEPENDS ${SRC} + COMMAND ${CMAKE_COMMAND} -E copy + "${CMAKE_CURRENT_SOURCE_DIR}/etc/${ARGV0}" + $/${ARGV0} + ) +endfunction() # Platforms if(WIN32) @@ -652,7 +662,7 @@ if(WIN32) function(move_dll) if(TARGET ${ARGV0}) - add_custom_command(TARGET move_libraries POST_BUILD + add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ $/$ @@ -670,6 +680,7 @@ if(WIN32) foreach(target ${ALL_PLUGIN_TARGETS}) move_dll(${target}) endforeach() + move_resource("lovrc.bat") elseif(APPLE) find_library(AVFOUNDATION AVFoundation) target_link_libraries(lovr objc ${AVFOUNDATION}) @@ -696,13 +707,13 @@ elseif(APPLE) if(TARGET ${ARGV0}) get_target_property(TARGET_TYPE ${ARGV0} TYPE) if(${TARGET_TYPE} STREQUAL "MODULE_LIBRARY") - add_custom_command(TARGET move_libraries POST_BUILD + add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${EXE_DIR}/$ ) else() - add_custom_command(TARGET move_libraries POST_BUILD + add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${EXE_DIR}/$ @@ -808,13 +819,13 @@ elseif(ANDROID) # Copy plugin libraries to lib folder before packaging APK foreach(target ${ALL_PLUGIN_TARGETS}) - add_custom_command(TARGET move_libraries POST_BUILD + add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ raw/lib/${ANDROID_ABI}/$ ) endforeach() - add_dependencies(buildAPK move_libraries) + add_dependencies(buildAPK move_files) endif() elseif(UNIX) target_sources(lovr PRIVATE src/core/os_linux.c) @@ -827,13 +838,13 @@ elseif(UNIX) if(TARGET ${ARGV0}) get_target_property(TARGET_TYPE ${ARGV0} TYPE) if(${TARGET_TYPE} STREQUAL "MODULE_LIBRARY") - add_custom_command(TARGET move_libraries POST_BUILD + add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_BINARY_DIR}/bin/$ ) elseif(${TARGET_TYPE} STREQUAL "SHARED_LIBRARY") - add_custom_command(TARGET move_libraries POST_BUILD + add_custom_command(TARGET move_files POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy $ ${CMAKE_BINARY_DIR}/bin/$ @@ -841,14 +852,6 @@ elseif(UNIX) endif() endif() endfunction() - function(move_app_image_file) - set(SRC "${CMAKE_CURRENT_SOURCE_DIR}/etc/${ARGV0}") - set(DST "${CMAKE_BINARY_DIR}/bin/${ARGV0}") - add_custom_command(TARGET lovr POST_BUILD - DEPENDS ${SRC} - COMMAND ${CMAKE_COMMAND} -E copy ${SRC} ${DST} - ) - endfunction() move_lib(${LOVR_GLFW}) move_lib(${LOVR_LUA}) move_lib(${LOVR_ODE}) @@ -859,8 +862,8 @@ elseif(UNIX) move_lib(${target}) endforeach() if(LOVR_BUILD_BUNDLE) - move_app_image_file("lovr.desktop") - move_app_image_file("AppRun") - move_app_image_file("logo.svg") + move_resource("lovr.desktop") + move_resource("AppRun") + move_resource("logo.svg") endif() endif() diff --git a/etc/lovrc.bat b/etc/lovrc.bat new file mode 100644 index 00000000..415a1984 --- /dev/null +++ b/etc/lovrc.bat @@ -0,0 +1 @@ +lovr --console %*