the whole game
This commit is contained in:
156
CMakeLists.txt
Executable file
156
CMakeLists.txt
Executable file
@@ -0,0 +1,156 @@
|
||||
cmake_minimum_required(VERSION 3.21)
|
||||
project(MinecraftPE)
|
||||
|
||||
include(cmake/CPM.cmake)
|
||||
|
||||
CPMAddPackage("gh:madler/zlib@1.3.2")
|
||||
CPMAddPackage(
|
||||
NAME "libpng"
|
||||
GIT_REPOSITORY "https://github.com/pnggroup/libpng.git"
|
||||
GIT_TAG "v1.6.55"
|
||||
OPTIONS
|
||||
"ZLIB_ROOT ${zlib_SOURCE_DIR}"
|
||||
"ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR}"
|
||||
"PNG_TOOLS OFF"
|
||||
"PNG_TESTS OFF"
|
||||
"BUILD_SHARED_LIBS ON"
|
||||
)
|
||||
|
||||
CPMAddPackage(
|
||||
NAME "openal"
|
||||
GIT_REPOSITORY "https://github.com/kcat/openal-soft.git"
|
||||
GIT_TAG "1.25.1"
|
||||
OPTIONS
|
||||
"ALSOFT_EXAMPLES OFF"
|
||||
"ALSOFT_TESTS OFF"
|
||||
"ALSOFT_UTILS OFF"
|
||||
"BUILD_SHARED_LIBS ON"
|
||||
)
|
||||
|
||||
CPMAddPackage(
|
||||
NAME "glfw"
|
||||
GIT_REPOSITORY "https://github.com/glfw/glfw.git"
|
||||
GIT_TAG "3.4"
|
||||
OPTIONS
|
||||
"GLFW_BUILD_EXAMPLES OFF"
|
||||
"GLFW_BUILD_TESTS OFF"
|
||||
"GLFW_BUILD_DOCS OFF"
|
||||
"BUILD_SHARED_LIBS ON"
|
||||
)
|
||||
|
||||
file(GLOB SOURCES
|
||||
"src/client/*.cpp"
|
||||
|
||||
"src/client/gamemode/*.cpp"
|
||||
"src/client/gui/*.cpp"
|
||||
"src/client/gui/components/*.cpp"
|
||||
"src/client/gui/screens/*.cpp"
|
||||
"src/client/gui/screens/crafting/*.cpp"
|
||||
"src/client/gui/screens/touch/*.cpp"
|
||||
|
||||
"src/client/model/*.cpp"
|
||||
"src/client/model/geom/*.cpp"
|
||||
|
||||
"src/client/particle/*.cpp"
|
||||
|
||||
"src/client/player/*.cpp"
|
||||
"src/client/player/input/*.cpp"
|
||||
"src/client/player/input/touchscreen/*.cpp"
|
||||
|
||||
"src/client/renderer/*.cpp"
|
||||
"src/client/renderer/culling/*.cpp"
|
||||
"src/client/renderer/entity/*.cpp"
|
||||
"src/client/renderer/ptexture/*.cpp"
|
||||
"src/client/renderer/tileentity/*.cpp"
|
||||
|
||||
"src/client/sound/*.cpp"
|
||||
|
||||
"src/locale/*.cpp"
|
||||
|
||||
"src/nbt/*.cpp"
|
||||
|
||||
"src/network/*.cpp"
|
||||
"src/network/command/*.cpp"
|
||||
|
||||
"src/platform/*.cpp"
|
||||
"src/platform/audio/SoundSystemAL.cpp"
|
||||
"src/platform/input/*.cpp"
|
||||
|
||||
"src/raknet/**.cpp"
|
||||
|
||||
"src/server/**.cpp"
|
||||
|
||||
"src/util/**.cpp"
|
||||
|
||||
"src/world/*.cpp"
|
||||
"src/world/phys/*.cpp"
|
||||
"src/world/entity/*.cpp"
|
||||
"src/world/entity/ai/control/*.cpp"
|
||||
"src/world/entity/animal/*.cpp"
|
||||
"src/world/entity/item/*.cpp"
|
||||
"src/world/entity/monster/*.cpp"
|
||||
"src/world/entity/player/*.cpp"
|
||||
"src/world/entity/projectile/*.cpp"
|
||||
|
||||
"src/world/food/*.cpp"
|
||||
"src/world/inventory/*.cpp"
|
||||
|
||||
"src/world/item/*.cpp"
|
||||
"src/world/item/crafting/*.cpp"
|
||||
|
||||
"src/world/level/*.cpp"
|
||||
"src/world/level/biome/*.cpp"
|
||||
"src/world/level/chunk/*.cpp"
|
||||
"src/world/level/dimension/*.cpp"
|
||||
"src/world/level/levelgen/*.cpp"
|
||||
"src/world/level/levelgen/feature/*.cpp"
|
||||
"src/world/level/levelgen/synth/*.cpp"
|
||||
"src/world/level/material/*.cpp"
|
||||
"src/world/level/pathfinder/*.cpp"
|
||||
"src/world/level/storage/*.cpp"
|
||||
"src/world/level/tile/*.cpp"
|
||||
"src/world/level/tile/entity/*.cpp"
|
||||
|
||||
"src/SharedConstants.cpp"
|
||||
"src/main.cpp"
|
||||
"src/NinecraftApp.cpp"
|
||||
)
|
||||
|
||||
add_executable(${PROJECT_NAME}
|
||||
${SOURCES}
|
||||
|
||||
#TODO: if PLATFORM=PLATFORM_GLFW
|
||||
"src/AppPlatform_glfw.cpp"
|
||||
|
||||
"glad/src/glad.c"
|
||||
)
|
||||
|
||||
target_include_directories(${PROJECT_NAME} PUBLIC
|
||||
"${CMAKE_SOURCE_DIR}/glad/include/"
|
||||
"${CMAKE_SOURCE_DIR}/src"
|
||||
"${openal_SOURCE_DIR}/include"
|
||||
"${glfw_SOURCE_DIR}/include"
|
||||
"lib/include"
|
||||
)
|
||||
|
||||
target_compile_definitions(${PROJECT_NAME} PUBLIC "OPENGL_ES" "NO_EGL" "_CRT_SECURE_NO_WARNINGS" "PLATFORM_GLFW")
|
||||
|
||||
# TODO: add ws2_32 lib if windows
|
||||
# TODO: fix openal linking for windows
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} zlib png_shared alsoft.common OpenAL glfw)
|
||||
|
||||
if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_RUNTIME_DLLS:${PROJECT_NAME}> $<TARGET_FILE_DIR:${PROJECT_NAME}>
|
||||
COMMAND_EXPAND_LISTS
|
||||
)
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
TARGET ${PROJECT_NAME}
|
||||
POST_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/data" $<TARGET_FILE_DIR:${PROJECT_NAME}>/data
|
||||
)
|
||||
Reference in New Issue
Block a user