Files
MinecraftConsoles/cmake/Utils.cmake
rtm516 02a5961f39 Move project to CMake (#781)
* Move to cmake

* Move sources to source_groups and ditch more old VS files

* Add BuildVer.h generation

* Break out cmake source lists to platforms

* Don't copy swf files

* Revert audio changes from merge

* Add platform defines

* Match MSBuild flags

* Move BuildVer.h to common include and fix rebuild issue

* Seperate projects properly

* Exclude more files and make sure GameHDD exists

* Missing line

* Remove remaining VS project files

* Update readme and actions

* Use incremental LTCG

* Update workflows

* Update build workflows and output folder

* Disable vcpkg checks

* Force MSVC

* Use precompiled headers

* Only use PCH for cpp

* Exclude compat_shims from PCH

* Handle per-platform source includes

* Copy only current platform media

* Define Iggy libs per platform

* Fix EnsureGameHDD check

* Only set WIN32_EXECUTABLE on Windows

* Correct Iggy libs path

* Remove include of terrain_MipmapLevel

* Correct path to xsb/xwb

* Implement copilot suggestions

* Add clang flags (untested)

* Fix robocopy error checking

* Update documentation

* Drop CMakePresets.json version as we dont use v6 features

* Always cleanup artifacts in nightly even if some builds fail

* Re-work compiler target options

* Move newer iggy dll into redist and cleanup

* Fix typos

* Remove 'Source Files' from all source groups

* Remove old ps1 build scripts
2026-03-17 16:39:22 -05:00

29 lines
1.1 KiB
CMake

# Make sure the GameHDD directory exists, only supported on Windows
function(add_gamehdd_target TARGET_NAME)
add_custom_target(EnsureGameHDD_${TARGET_NAME} ALL
COMMAND ${CMAKE_COMMAND}
-E make_directory "$<TARGET_FILE_DIR:${TARGET_NAME}>/Windows64/GameHDD"
COMMENT "Ensuring GameHDD directory exists..."
VERBATIM
)
add_dependencies(${TARGET_NAME} EnsureGameHDD_${TARGET_NAME})
set_property(TARGET EnsureGameHDD_${TARGET_NAME} PROPERTY FOLDER "Build")
endfunction()
# Copy any needed redist files to the output directory
function(add_copyredist_target TARGET_NAME)
set(COPY_SCRIPT "${CMAKE_SOURCE_DIR}/cmake/CopyFolderScript.cmake")
add_custom_target(CopyRedist_${TARGET_NAME} ALL
COMMAND ${CMAKE_COMMAND}
"-DCOPY_SOURCE=${CMAKE_SOURCE_DIR}/Minecraft.Client/${PLATFORM_NAME}/Iggy/lib/redist64"
"-DCOPY_DEST=$<TARGET_FILE_DIR:${TARGET_NAME}>"
-P "${COPY_SCRIPT}"
COMMENT "Copying redist files..."
VERBATIM
)
add_dependencies(${TARGET_NAME} CopyRedist_${TARGET_NAME})
set_property(TARGET CopyRedist_${TARGET_NAME} PROPERTY FOLDER "Build")
endfunction()