CMakeLists.txt 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Source files and their filters
  2. include(CMakeSources.cmake)
  3. # Target
  4. if(WIN32)
  5. add_executable(Game WIN32 ${BS_GAME_SRC})
  6. else()
  7. add_executable(Game ${BS_GAME_SRC})
  8. endif()
  9. # Common flags
  10. add_common_flags(Game)
  11. # Includes
  12. target_include_directories(Game PRIVATE "./")
  13. # Post-build step
  14. if(WIN32)
  15. if(BS_64BIT)
  16. set(BS_COPY_FOLDER Win64)
  17. else()
  18. set(BS_COPY_FOLDER Win32)
  19. endif()
  20. if(MSVC)
  21. add_custom_command(
  22. TARGET Game POST_BUILD
  23. COMMAND xcopy /Y /I \"$(TargetDir)$(TargetName).exe\" \"${PROJECT_SOURCE_DIR}\\Data\\Binaries\\${BS_COPY_FOLDER}\\\")
  24. else()
  25. set(SRC_FILE ${BS_BINARY_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/Game)
  26. set(DST_FOLDER ${PROJECT_SOURCE_DIR}/Data/Binaries/${BS_COPY_FOLDER})
  27. add_custom_command(TARGET Game POST_BUILD COMMAND xcopy /Y /I ${SRC_FILE} ${DST_FOLDER})
  28. endif()
  29. elseif(LINUX)
  30. if(BS_64BIT)
  31. set(BS_COPY_FOLDER Linux64)
  32. else()
  33. set(BS_COPY_FOLDER Linux32)
  34. endif()
  35. set(SRC_FILE ${BS_BINARY_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/Game)
  36. set(DST_FOLDER ${PROJECT_SOURCE_DIR}/Data/Binaries/${BS_COPY_FOLDER})
  37. add_custom_command(
  38. TARGET Game POST_BUILD
  39. COMMAND rm -rf ${DST_FOLDER}
  40. COMMAND mkdir -p ${DST_FOLDER}
  41. COMMAND cp ${SRC_FILE} ${DST_FOLDER})
  42. else()
  43. # TODO_OTHER_PLATFORMS_GO_HERE
  44. endif()
  45. # Libraries
  46. ## Local libs
  47. target_link_libraries(Game bsfScript bsfMono bsf)
  48. # IDE specific
  49. set_property(TARGET Game PROPERTY FOLDER Executable)
  50. # Plugin dependencies
  51. add_engine_dependencies(Game)
  52. # Compiler flags
  53. if(MSVC)
  54. target_compile_options(Game PUBLIC /wd4509)
  55. endif()
  56. # Install
  57. set(PLATFORM_PATH_PREFIX "")
  58. if(WIN32)
  59. set(PLATFORM_PATH_PREFIX "Win")
  60. elseif(LINUX)
  61. set(PLATFORM_PATH_PREFIX "Linux")
  62. elseif(APPLE)
  63. set(PLATFORM_PATH_PREFIX "macOS")
  64. else()
  65. message(FATAL "Unsupported platform.")
  66. endif()
  67. if(BS_64BIT)
  68. set(PLATFORM_PATH_PREFIX "${PLATFORM_PATH_PREFIX}64")
  69. endif()
  70. install(
  71. TARGETS Game
  72. RUNTIME DESTINATION bin/EditorData/Binaries/${PLATFORM_PATH_PREFIX}
  73. )