CMakeLists.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. if(WIN32)
  2. set(REPROC_WINSOCK_LIBRARY ws2_32)
  3. elseif(NOT APPLE)
  4. set(REPROC_RT_LIBRARY rt) # clock_gettime
  5. endif()
  6. reproc_library(reproc C)
  7. if(REPROC_MULTITHREADED)
  8. target_compile_definitions(reproc PRIVATE REPROC_MULTITHREADED)
  9. target_link_libraries(reproc PRIVATE Threads::Threads)
  10. endif()
  11. if(WIN32)
  12. set(PLATFORM windows)
  13. target_compile_definitions(reproc PRIVATE WIN32_LEAN_AND_MEAN)
  14. target_link_libraries(reproc PRIVATE ${REPROC_WINSOCK_LIBRARY})
  15. else()
  16. set(PLATFORM posix)
  17. if(NOT APPLE)
  18. target_link_libraries(reproc PRIVATE ${REPROC_RT_LIBRARY})
  19. endif()
  20. endif()
  21. target_sources(reproc PRIVATE
  22. src/clock.${PLATFORM}.c
  23. src/drain.c
  24. src/error.${PLATFORM}.c
  25. src/handle.${PLATFORM}.c
  26. src/init.${PLATFORM}.c
  27. src/options.c
  28. src/pipe.${PLATFORM}.c
  29. src/process.${PLATFORM}.c
  30. src/redirect.${PLATFORM}.c
  31. src/redirect.c
  32. src/reproc.c
  33. src/run.c
  34. src/strv.c
  35. src/utf.${PLATFORM}.c
  36. )
  37. reproc_test(reproc argv C)
  38. reproc_test(reproc deadline C)
  39. reproc_test(reproc env C)
  40. reproc_test(reproc io C)
  41. reproc_test(reproc overflow C)
  42. reproc_test(reproc path C)
  43. reproc_test(reproc stop C)
  44. reproc_test(reproc working-directory C)
  45. reproc_test(reproc pid C)
  46. if(UNIX)
  47. reproc_test(reproc fork C)
  48. endif()
  49. reproc_example(reproc drain C)
  50. reproc_example(reproc env C ARGS PROJECT=REPROC)
  51. reproc_example(reproc path C)
  52. reproc_example(reproc poll C)
  53. reproc_example(reproc read C)
  54. reproc_example(reproc parent C)
  55. reproc_example(reproc run C)