CMakeLists.txt 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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. set(GLAD "${GLFW_SOURCE_DIR}/deps/glad/glad.h"
  10. "${GLFW_SOURCE_DIR}/deps/glad.c")
  11. set(GETOPT "${GLFW_SOURCE_DIR}/deps/getopt.h"
  12. "${GLFW_SOURCE_DIR}/deps/getopt.c")
  13. set(TINYCTHREAD "${GLFW_SOURCE_DIR}/deps/tinycthread.h"
  14. "${GLFW_SOURCE_DIR}/deps/tinycthread.c")
  15. add_executable(clipboard clipboard.c ${GETOPT} ${GLAD})
  16. add_executable(events events.c ${GETOPT} ${GLAD})
  17. add_executable(msaa msaa.c ${GETOPT} ${GLAD})
  18. add_executable(glfwinfo glfwinfo.c ${GETOPT} ${GLAD})
  19. add_executable(iconify iconify.c ${GETOPT} ${GLAD})
  20. add_executable(monitors monitors.c ${GETOPT} ${GLAD})
  21. add_executable(reopen reopen.c ${GLAD})
  22. add_executable(cursor cursor.c ${GLAD})
  23. add_executable(empty WIN32 MACOSX_BUNDLE empty.c ${TINYCTHREAD} ${GLAD})
  24. add_executable(gamma WIN32 MACOSX_BUNDLE gamma.c ${GLAD})
  25. add_executable(icon WIN32 MACOSX_BUNDLE icon.c ${GLAD})
  26. add_executable(inputlag WIN32 MACOSX_BUNDLE inputlag.c ${GETOPT} ${GLAD})
  27. add_executable(joysticks WIN32 MACOSX_BUNDLE joysticks.c ${GLAD})
  28. add_executable(opacity WIN32 MACOSX_BUNDLE opacity.c ${GLAD})
  29. add_executable(tearing WIN32 MACOSX_BUNDLE tearing.c ${GLAD})
  30. add_executable(threads WIN32 MACOSX_BUNDLE threads.c ${TINYCTHREAD} ${GLAD})
  31. add_executable(timeout WIN32 MACOSX_BUNDLE timeout.c ${GLAD})
  32. add_executable(title WIN32 MACOSX_BUNDLE title.c ${GLAD})
  33. add_executable(windows WIN32 MACOSX_BUNDLE windows.c ${GETOPT} ${GLAD})
  34. target_link_libraries(empty "${CMAKE_THREAD_LIBS_INIT}")
  35. target_link_libraries(threads "${CMAKE_THREAD_LIBS_INIT}")
  36. if (RT_LIBRARY)
  37. target_link_libraries(empty "${RT_LIBRARY}")
  38. target_link_libraries(threads "${RT_LIBRARY}")
  39. endif()
  40. set(WINDOWS_BINARIES empty gamma icon inputlag joysticks opacity tearing
  41. threads timeout title windows)
  42. set(CONSOLE_BINARIES clipboard events msaa glfwinfo iconify monitors reopen
  43. cursor)
  44. if (VULKAN_FOUND)
  45. add_executable(vulkan WIN32 vulkan.c ${ICON})
  46. target_include_directories(vulkan PRIVATE "${VULKAN_INCLUDE_DIR}")
  47. if (GLFW_VULKAN_STATIC)
  48. target_link_libraries(vulkan "${VULKAN_STATIC_LIBRARY}" ${GLFW_VULKAN_DEPS})
  49. else()
  50. target_link_libraries(vulkan "${VULKAN_LIBRARY}")
  51. endif()
  52. list(APPEND WINDOWS_BINARIES vulkan)
  53. endif()
  54. set_target_properties(${WINDOWS_BINARIES} ${CONSOLE_BINARIES} PROPERTIES
  55. FOLDER "GLFW3/Tests")
  56. if (MSVC)
  57. # Tell MSVC to use main instead of WinMain for Windows subsystem executables
  58. set_target_properties(${WINDOWS_BINARIES} ${CONSOLE_BINARIES} PROPERTIES
  59. LINK_FLAGS "/ENTRY:mainCRTStartup")
  60. endif()
  61. if (APPLE)
  62. set_target_properties(empty PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Empty Event")
  63. set_target_properties(gamma PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Gamma")
  64. set_target_properties(inputlag PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Input Lag")
  65. set_target_properties(joysticks PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Joysticks")
  66. set_target_properties(opacity PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Opacity")
  67. set_target_properties(tearing PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Tearing")
  68. set_target_properties(threads PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Threads")
  69. set_target_properties(timeout PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Timeout")
  70. set_target_properties(title PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Title")
  71. set_target_properties(windows PROPERTIES MACOSX_BUNDLE_BUNDLE_NAME "Windows")
  72. set_target_properties(${WINDOWS_BINARIES} ${CONSOLE_BINARIES} PROPERTIES
  73. MACOSX_BUNDLE_SHORT_VERSION_STRING ${GLFW_VERSION}
  74. MACOSX_BUNDLE_LONG_VERSION_STRING ${GLFW_VERSION_FULL}
  75. MACOSX_BUNDLE_INFO_PLIST "${GLFW_SOURCE_DIR}/CMake/MacOSXBundleInfo.plist.in")
  76. endif()