linux.cmake 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # Linux specific flags
  2. message(STATUS "Configuring for Linux")
  3. target_compile_definitions(
  4. common
  5. INTERFACE HAVE_GETHOSTBYNAME2
  6. HAVE_UNION_SEMUN
  7. HAVE_SCHED_YIELD
  8. HAVE_MSG_NOSIGNAL
  9. HAVE_MSGHDR_MSG_CONTROL
  10. HAVE_ALLOCA_H
  11. HAVE_TIMEGM
  12. HAVE_SCHED_SETSCHEDULER
  13. HAVE_IP_MREQN
  14. )
  15. if(${RAW_SOCKS})
  16. target_compile_definitions(common INTERFACE USE_RAW_SOCKS)
  17. endif()
  18. message(STATUS "USE_FAST_LOCK = ${USE_FAST_LOCK}")
  19. if(NOT ${USE_FAST_LOCK})
  20. target_compile_definitions(common INTERFACE USE_PTHREAD_MUTEX)
  21. target_link_libraries(common INTERFACE pthread)
  22. else()
  23. # Check if lock_method is posix or pthread
  24. if(LOCK_METHOD STREQUAL "USE_POSIX_SEM" OR LOCK_METHOD STREQUAL
  25. "USE_PTHREAD_MUTEX"
  26. )
  27. message(STATUS "Using ${LOCK_METHOD} for locks")
  28. target_link_libraries(common INTERFACE pthread)
  29. endif()
  30. endif()
  31. if(NOT DEFINED ${NO_SELECT})
  32. target_compile_definitions(common INTERFACE HAVE_SELECT)
  33. endif()
  34. # TODO introduce check for epoll
  35. if(NOT DEFINED ${NO_EPOLL})
  36. target_compile_definitions(common INTERFACE HAVE_EPOLL)
  37. endif()
  38. # TODO introduce check for sigio
  39. if(NOT DEFINED ${NO_SIGIO})
  40. target_compile_definitions(
  41. common INTERFACE HAVE_SIGIO_RT SIGINFO64_WORKAROUND
  42. )
  43. endif()
  44. # TODO introduce check for futex
  45. if(NOT DEFINED ${USE_FUTEX})
  46. target_compile_definitions(common INTERFACE USE_FUTEX)
  47. endif()