CMakeLists.txt 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. link_libraries(glfw)
  2. include_directories(${glfw_INCLUDE_DIRS} "${GLFW_SOURCE_DIR}/deps")
  3. if (MATH_LIBRARY)
  4. link_libraries("${MATH_LIBRARY}")
  5. endif()
  6. if (MSVC)
  7. add_definitions(-D_CRT_SECURE_NO_WARNINGS)
  8. endif()
  9. if (GLFW_USE_OSMESA)
  10. add_definitions(-DUSE_NATIVE_OSMESA)
  11. endif()
  12. if (WIN32)
  13. set(ICON glfw.rc)
  14. elseif (APPLE)
  15. set(ICON glfw.icns)
  16. set_source_files_properties(glfw.icns PROPERTIES
  17. MACOSX_PACKAGE_LOCATION "Resources")
  18. endif()
  19. set(GLAD "${GLFW_SOURCE_DIR}/deps/glad/glad.h"
  20. "${GLFW_SOURCE_DIR}/deps/glad.c")
  21. set(GETOPT "${GLFW_SOURCE_DIR}/deps/getopt.h"
  22. "${GLFW_SOURCE_DIR}/deps/getopt.c")
  23. set(TINYCTHREAD "${GLFW_SOURCE_DIR}/deps/tinycthread.h"
  24. "${GLFW_SOURCE_DIR}/deps/tinycthread.c")
  25. add_executable(boing WIN32 MACOSX_BUNDLE boing.c ${ICON} ${GLAD})
  26. add_executable(gears WIN32 MACOSX_BUNDLE gears.c ${ICON} ${GLAD})
  27. add_executable(heightmap WIN32 MACOSX_BUNDLE heightmap.c ${ICON} ${GLAD})
  28. add_executable(offscreen offscreen.c ${ICON} ${GLAD})
  29. add_executable(particles WIN32 MACOSX_BUNDLE particles.c ${ICON} ${TINYCTHREAD} ${GETOPT} ${GLAD})
  30. add_executable(sharing WIN32 MACOSX_BUNDLE sharing.c ${ICON} ${GLAD})
  31. add_executable(simple WIN32 MACOSX_BUNDLE simple.c ${ICON} ${GLAD})
  32. add_executable(splitview WIN32 MACOSX_BUNDLE splitview.c ${ICON} ${GLAD})
  33. add_executable(wave WIN32 MACOSX_BUNDLE wave.c ${ICON} ${GLAD})
  34. target_link_libraries(particles "${CMAKE_THREAD_LIBS_INIT}")
  35. if (RT_LIBRARY)
  36. target_link_libraries(particles "${RT_LIBRARY}")
  37. endif()
  38. set(WINDOWS_BINARIES boing gears heightmap particles sharing simple splitview wave)
  39. set(CONSOLE_BINARIES offscreen)
  40. set_target_properties(${WINDOWS_BINARIES} ${CONSOLE_BINARIES} PROPERTIES
  41. FOLDER "GLFW3/Examples")
  42. if (MSVC)
  43. # Tell MSVC to use main instead of WinMain for Windows subsystem executables
  44. set_target_properties(${WINDOWS_BINARIES} PROPERTIES
  45. LINK_FLAGS "/ENTRY:mainCRTStartup")
  46. endif()
  47. if (APPLE)
  48. set_target_properties(boing PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Boing")
  49. set_target_properties(gears PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Gears")
  50. set_target_properties(heightmap PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Heightmap")
  51. set_target_properties(particles PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Particles")
  52. set_target_properties(sharing PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Sharing")
  53. set_target_properties(simple PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Simple")
  54. set_target_properties(splitview PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "SplitView")
  55. set_target_properties(wave PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Wave")
  56. set_target_properties(${WINDOWS_BINARIES} PROPERTIES
  57. RESOURCE glfw.icns
  58. MACOSX_BUNDLE_SHORT_VERSION_STRING ${GLFW_VERSION}
  59. MACOSX_BUNDLE_LONG_VERSION_STRING ${GLFW_VERSION_FULL}
  60. MACOSX_BUNDLE_ICON_FILE glfw.icns
  61. MACOSX_BUNDLE_INFO_PLIST "${GLFW_SOURCE_DIR}/CMake/MacOSXBundleInfo.plist.in")
  62. endif()