CMakeLists.txt 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
  2. SET(CMAKE_C_STANDARD 11)
  3. PROJECT(BrainFuck C)
  4. OPTION(build_with_rpath "Set CMAKE_BUILD_WITH_INSTALL_RPATH on" OFF)
  5. OPTION(build_test "Build test program" ON)
  6. ADD_DEFINITIONS(-DBF_VERSION="1.2.1 Version")
  7. ADD_DEFINITIONS(-DBF_VERSION_INFO="Debug, hope that you are well.")
  8. SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
  9. SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/lib) # 设置输出路
  10. SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
  11. SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
  12. SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") # 设定rpath
  13. IF (build_with_rpath)
  14. SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
  15. MESSAGE("SET(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) success!")
  16. ENDIF ()
  17. INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
  18. ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/src)
  19. ADD_EXECUTABLE(BrainFuck main.c)
  20. TARGET_LINK_LIBRARIES(BrainFuck BrainFuck_Lib)
  21. IF (build_test)
  22. ENABLE_TESTING()
  23. ADD_SUBDIRECTORY(${CMAKE_SOURCE_DIR}/test)
  24. MESSAGE("Build test program")
  25. ENDIF()
  26. INSTALL(TARGETS BrainFuck)