CMakeLists.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. cmake_minimum_required (VERSION 3.12.0)
  2. project (bsfExamples)
  3. set(BSF_DIRECTORY "${PROJECT_SOURCE_DIR}/bsf" CACHE STRING "bsf directory")
  4. set (BSF_SOURCE_DIR ${BSF_DIRECTORY}/Source)
  5. set (APP_ROOT_DIR ${BSF_DIRECTORY})
  6. set (SECONDARY_APP_ROOT_DIR "${PROJECT_SOURCE_DIR}")
  7. set (BS_IS_BANSHEE3D 0)
  8. set(BSF_AUTO_FETCH ON CACHE BOOL "If true BSF submodule will be automatically initialized and updated whenever CMake is ran.")
  9. # Grab BSF
  10. find_path(SUBMODULE_SOURCES "Source/Foundation/bsfEngine/BsApplication.h" "bsf/")
  11. mark_as_advanced(SUBMODULE_SOURCES)
  12. if(BSF_AUTO_FETCH)
  13. message(STATUS "Fetching 'bsf' submodule...")
  14. if(NOT SUBMODULE_SOURCES)
  15. execute_process(COMMAND git submodule update
  16. --init
  17. -- bsf
  18. WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
  19. else()
  20. execute_process(COMMAND git submodule update
  21. -- bsf
  22. WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
  23. endif()
  24. endif()
  25. include(${BSF_SOURCE_DIR}/CMake/Properties.cmake)
  26. include(${BSF_SOURCE_DIR}/CMake/FindPackageOrBuild.cmake)
  27. include(${BSF_SOURCE_DIR}/CMake/HelperMethods.cmake)
  28. add_subdirectory(${BSF_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/bsf)
  29. set(BS_EXAMPLES_BUILTIN_ASSETS_VERSION 9)
  30. # Generate config file
  31. configure_file("${PROJECT_SOURCE_DIR}/Source/CMake/BsExampleConfig.h.in" "${PROJECT_SOURCE_DIR}/Source/Common/BsExampleConfig.h")
  32. # Check data dependencies
  33. check_and_update_builtin_assets(bsfExamples ${PROJECT_SOURCE_DIR}/Data Data ${BS_EXAMPLES_BUILTIN_ASSETS_VERSION} NO)
  34. # Sub-directories
  35. add_subdirectory(Source/Common)
  36. add_subdirectory(Source/LowLevelRendering)
  37. add_subdirectory(Source/PhysicallyBasedShading)
  38. add_subdirectory(Source/CustomMaterials)
  39. add_subdirectory(Source/GUI)
  40. add_subdirectory(Source/Audio)
  41. add_subdirectory(Source/SkeletalAnimation)
  42. add_subdirectory(Source/Physics)
  43. add_subdirectory(Source/Particles)
  44. add_subdirectory(Source/Decals)
  45. add_subdirectory_optional(Source/Experimental/Shadows)
  46. add_subdirectory_optional(Source/Experimental/Particles)