#cmake version cmake_minimum_required(VERSION 3.31) #project name project(PlanetExplorerGameDemo) #cpp settings find_program(CLANG_C NAMES clang) find_program(CLANG_CXX NAMES clang++) if(CLANG_C AND CLANG_CXX) message(STATUS "foung Clang, using as Compiler") set(CMAKE_C_COMPILER ${CLANG_C} CACHE STRING "C Compiler" FORCE) set(CMAKE_CXX_COMPILER ${CLANG_CXX} CACHE STRING "C++ Compiler" FORCE) else() message(STATUS "Clang not found, using Standard-Compiler") endif() set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) #project output settings set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${PROJECT_SOURCE_DIR}/bin") set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${PROJECT_SOURCE_DIR}/bin") #engine projects add_subdirectory(TSE/TSE_Base) add_subdirectory(TSE/TSE_Math) add_subdirectory(TSE/TSE_Core) add_subdirectory(TSE/TSE_Editor) add_subdirectory(TSE/TSE_GlfwImpl) add_subdirectory(TSE/TSE_GlfwOpenGlImpl) find_package(Lua 5.4 REQUIRED) #source files file(GLOB CPP_SOURCE "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*.cpp" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*/*.cpp" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*/*/*.cpp" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*/*/*/*.cpp" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*.c" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*/*.c" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*/*/*.c" "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src/*/*/*/*.c" ) #includes include_directories(${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/src) include_directories(${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/include) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_Math/src) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_Core/src) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_Base/src) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_Base/include) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_Editor/src) #includes Glfw include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_GlfwImpl/src) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_GlfwImpl/include) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_GlfwOpenGlImpl/src) include_directories(${PROJECT_SOURCE_DIR}/TSE/TSE_GlfwOpenGlImpl/include) #project def add_executable(PlanetExplorerGameDemo ${CPP_SOURCE}) target_include_directories(PlanetExplorerGameDemo PRIVATE ${LUA_INCLUDE_DIR}) if (WIN32) if(DEBUG) set(DEBUGSPEC "${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include/FreeImageLib.d.lib" "${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include/box2dd.lib" ) else() set(DEBUGSPEC "${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include/FreeImageLib.r.lib" "${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include/box2d.lib" ) endif() set(LIB_SOURCE "${PROJECT_SOURCE_DIR}/TSE/TSE_GlfwImpl/include/glfw3.lib" # "${PROJECT_SOURCE_DIR}/../TSE.Core/lib/freetype.lib" "${DEBUGSPEC}" "${LUA_LIBRARIES}" ) else() set(LIB_SOURCE # "${PROJECT_SOURCE_DIR}/../TSE.Core/lib/libfreetype.a" "${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include/libfreeimage.a" "${PROJECT_SOURCE_DIR}/TSE/TSE_GlfwImpl/include/libglfw3.a" "${PROJECT_SOURCE_DIR}/TSE/TSE_Core/include/libbox2d.a" "${LUA_LIBRARIES}" ) endif() if (WIN32) target_link_libraries(PlanetExplorerGameDemo PUBLIC TSE_Base TSE_Math TSE_Core TSE_GlfwImpl TSE_GlfwOpenGlImpl TSE_Editor ${LIB_SOURCE}) else() target_link_libraries(PlanetExplorerGameDemo PUBLIC TSE_Editor TSE_GlfwOpenGlImpl TSE_GlfwImpl TSE_Core TSE_Math TSE_Base ${LIB_SOURCE}) endif() #flags target_compile_options(PlanetExplorerGameDemo PRIVATE -march=native) set(TARGET_DIR "${PROJECT_SOURCE_DIR}/bin") add_custom_command( TARGET PlanetExplorerGameDemo POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/PlanetExplorerGameDemo/Resources" "${TARGET_DIR}" COMMENT "📂 Kopiere Resources/ nach bin/ nach Buildabschluss\n" )