CMakeLists.txt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. cmake_minimum_required(VERSION 3.0)
  2. SET(COMPILER_DIR src/compiler/)
  3. SET(RUNTIME_DIR src/runtime/)
  4. SET(SHARED_DIR src/shared/)
  5. SET(UTILS_DIR src/utils/)
  6. SET(OPT_DIR src/optionals/)
  7. SET(GRAVITY_SRC src/cli/gravity.c)
  8. AUX_SOURCE_DIRECTORY(${COMPILER_DIR} COMPILER_FILES)
  9. AUX_SOURCE_DIRECTORY(${RUNTIME_DIR} RUNTIME_FILES)
  10. AUX_SOURCE_DIRECTORY(${SHARED_DIR} SHARED_FILES)
  11. AUX_SOURCE_DIRECTORY(${UTILS_DIR} UTILS_FILES)
  12. AUX_SOURCE_DIRECTORY(${OPT_DIR} OPT_FILES)
  13. include_directories(${COMPILER_DIR} ${RUNTIME_DIR} ${SHARED_DIR} ${UTILS_DIR} ${OPT_DIR})
  14. SET(CMAKE_C_STANDARD 99)
  15. SET(SRC_FILES ${COMPILER_FILES} ${RUNTIME_FILES} ${SHARED_FILES} ${UTILS_FILES} ${OPT_FILES})
  16. ADD_LIBRARY(libgravity OBJECT ${SRC_FILES})
  17. if(WIN32)
  18. LIST(APPEND LIBS "m" "Shlwapi")
  19. elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
  20. LIST(APPEND LIBS "m")
  21. elseif(${CMAKE_SYSTEM_NAME} MATCHES "NetBSD")
  22. add_definitions(-D_WITH_GETLINE)
  23. LIST(APPEND LIBS "m")
  24. elseif(${CMAKE_SYSTEM_NAME} MATCHES "BSD|DragonFly")
  25. add_definitions(-D_WITH_GETLINE)
  26. LIST(APPEND LIBS "m")
  27. elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
  28. LIST(APPEND LIBS "m" "rt")
  29. endif()
  30. ADD_EXECUTABLE(gravity ${GRAVITY_SRC} $<TARGET_OBJECTS:libgravity>)
  31. TARGET_LINK_LIBRARIES(gravity ${LIBS})
  32. install(TARGETS gravity DESTINATION /usr/local/bin)