CMakeLists.txt 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. # Includes
  10. target_include_directories(Game PRIVATE "./")
  11. # Post-build step
  12. if(WIN32)
  13. if(BS_64BIT)
  14. set(BS_COPY_FOLDER Win64)
  15. else()
  16. set(BS_COPY_FOLDER Win32)
  17. endif()
  18. if(MSVC)
  19. add_custom_command(
  20. TARGET Game POST_BUILD
  21. COMMAND xcopy /Y /I \"$(TargetDir)$(TargetName).exe\" \"${PROJECT_SOURCE_DIR}\\Data\\Binaries\\${BS_COPY_FOLDER}\\\")
  22. else()
  23. set(SRC_FILE ${BS_BINARY_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/Game)
  24. set(DST_FOLDER ${PROJECT_SOURCE_DIR}/Data/Binaries/${BS_COPY_FOLDER})
  25. add_custom_command(TARGET Game POST_BUILD COMMAND xcopy /Y /I ${SRC_FILE} ${DST_FOLDER})
  26. endif()
  27. elseif(LINUX)
  28. if(BS_64BIT)
  29. set(BS_COPY_FOLDER Linux64)
  30. else()
  31. set(BS_COPY_FOLDER Linux32)
  32. endif()
  33. set(SRC_FILE ${BS_BINARY_OUTPUT_DIR}/${CMAKE_BUILD_TYPE}/Game)
  34. set(DST_FOLDER ${PROJECT_SOURCE_DIR}/Data/Binaries/${BS_COPY_FOLDER})
  35. add_custom_command(
  36. TARGET Game POST_BUILD
  37. COMMAND rm -rf ${DST_FOLDER}
  38. COMMAND mkdir -p ${DST_FOLDER}
  39. COMMAND cp ${SRC_FILE} ${DST_FOLDER})
  40. else()
  41. # TODO_OTHER_PLATFORMS_GO_HERE
  42. endif()
  43. # Libraries
  44. ## Local libs
  45. target_link_libraries(Game bsf)
  46. # IDE specific
  47. set_property(TARGET Game PROPERTY FOLDER Executable)
  48. # Plugin dependencies
  49. add_engine_dependencies(Game)
  50. # Compiler flags
  51. if(MSVC)
  52. target_compile_options(Game PUBLIC /wd4509)
  53. endif()