2
0

CMakeLists.txt 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. # raylib
  2. find_package(raylib QUIET)
  3. if (NOT raylib_FOUND)
  4. include(FetchContent)
  5. FetchContent_Declare(
  6. raylib
  7. GIT_REPOSITORY https://github.com/raysan5/raylib.git
  8. GIT_TAG 5.5
  9. GIT_SHALLOW 1
  10. )
  11. FetchContent_GetProperties(raylib)
  12. if (NOT raylib_POPULATED) # Have we downloaded raylib yet?
  13. set(FETCHCONTENT_QUIET NO)
  14. FetchContent_Populate(raylib)
  15. set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
  16. set(BUILD_GAMES OFF CACHE BOOL "" FORCE)
  17. add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR})
  18. endif()
  19. endif()
  20. # raylib-nuklear-example
  21. add_executable(raylib-nuklear-example
  22. raylib-nuklear-example.c
  23. )
  24. target_link_libraries(raylib-nuklear-example PUBLIC
  25. raylib
  26. raylib_nuklear
  27. )
  28. # raylib-nuklear-demo
  29. add_executable(raylib-nuklear-demo
  30. raylib-nuklear-demo.c
  31. )
  32. target_link_libraries(raylib-nuklear-demo PUBLIC
  33. raylib
  34. raylib_nuklear
  35. )
  36. # raylib-nuklear-font
  37. add_executable(raylib-nuklear-font
  38. raylib-nuklear-font.c
  39. )
  40. target_link_libraries(raylib-nuklear-font PUBLIC
  41. raylib
  42. raylib_nuklear
  43. )
  44. # raylib-nuklear-font
  45. add_executable(raylib-nuklear-font-default
  46. raylib-nuklear-font-default.c
  47. )
  48. target_link_libraries(raylib-nuklear-font-default PUBLIC
  49. raylib
  50. raylib_nuklear
  51. )
  52. # raylib-nuklear-texture
  53. add_executable(raylib-nuklear-texture
  54. raylib-nuklear-texture.c
  55. )
  56. target_link_libraries(raylib-nuklear-texture PUBLIC
  57. raylib
  58. raylib_nuklear
  59. )
  60. # Target C99
  61. set_property(TARGET raylib-nuklear-example PROPERTY C_STANDARD 99)
  62. set_property(TARGET raylib-nuklear-demo PROPERTY C_STANDARD 99)
  63. set_property(TARGET raylib-nuklear-font PROPERTY C_STANDARD 99)
  64. set_property(TARGET raylib-nuklear-texture PROPERTY C_STANDARD 99)
  65. # Enable warnings
  66. if(MSVC)
  67. target_compile_options(raylib-nuklear-example PRIVATE /W4 /WX)
  68. target_compile_options(raylib-nuklear-demo PRIVATE /W4 /WX)
  69. target_compile_options(raylib-nuklear-font PRIVATE /W4 /WX)
  70. target_compile_options(raylib-nuklear-texture PRIVATE /W4 /WX)
  71. else()
  72. target_compile_options(raylib-nuklear-example PRIVATE -Wall -Wextra -Wpedantic -Werror)
  73. target_compile_options(raylib-nuklear-demo PRIVATE -Wall -Wextra -Wpedantic -Werror)
  74. target_compile_options(raylib-nuklear-font PRIVATE -Wall -Wextra -Wpedantic -Werror)
  75. target_compile_options(raylib-nuklear-texture PRIVATE -Wall -Wextra -Wpedantic -Werror)
  76. endif()
  77. # Resources
  78. configure_file(resources/anonymous_pro_bold.ttf resources/anonymous_pro_bold.ttf COPYONLY)
  79. configure_file(resources/test-image.png resources/test-image.png COPYONLY)
  80. # Web Configurations
  81. #if (${PLATFORM} STREQUAL "Web")
  82. if (EMSCRIPTEN)
  83. # Tell Emscripten to build an example.html file.
  84. set_target_properties(raylib-nuklear-demo PROPERTIES SUFFIX ".html")
  85. set_target_properties(raylib-nuklear-demo PROPERTIES OUTPUT_NAME "index")
  86. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --shell-file ${CMAKE_CURRENT_SOURCE_DIR}/minshell.html")
  87. set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s USE_GLFW=3")
  88. add_definitions(-DPLATFORM=Web)
  89. add_definitions(-DCMAKE_BUILD_TYPE=Release)
  90. endif()