CMakeLists.txt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
  2. PROJECT(VirtualMath C)
  3. SET(CMAKE_C_STANDARD 11)
  4. OPTION(GC "GC" ON)
  5. OPTION(SET_DEBUG "SET_DEBUG" ON)
  6. SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib-${CMAKE_BUILD_TYPE})
  7. SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
  8. SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
  9. SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin-${CMAKE_BUILD_TYPE})
  10. IF (${SET_DEBUG})
  11. ADD_DEFINITIONS(-DDEBUG=1)
  12. ELSE()
  13. ADD_DEFINITIONS(-DDEBUG=0)
  14. ENDIF()
  15. IF (${GC})
  16. ADD_DEFINITIONS(-DSTART_GC=1)
  17. ELSE()
  18. ADD_DEFINITIONS(-DSTART_GC=0)
  19. ENDIF()
  20. ADD_DEFINITIONS(-DCC=\"${CMAKE_C_COMPILER}\")
  21. ADD_DEFINITIONS(-DSYS=\"${CMAKE_SYSTEM}.${CMAKE_SYSTEM_PROCESSOR}\")
  22. INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/vmcore/include BEFORE)
  23. AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)
  24. AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/argument ARGUMENT_LIST)
  25. MESSAGE("project dir is ${PROJECT_SOURCE_DIR}")
  26. MESSAGE("cmake file in is ${CMAKE_CURRENT_SOURCE_DIR}")
  27. MESSAGE("vmcore on ${vmcore_BINARY_DIR}")
  28. LINK_DIRECTORIES(${vmcore_BINARY_DIR}) # 添加vmcore的构建目录为寻找lib的目录
  29. ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/vmcore)
  30. ADD_EXECUTABLE(VirtualMath main.c ${SRC_LIST} ${ARGUMENT_LIST})
  31. TARGET_LINK_LIBRARIES(VirtualMath vmcore)
  32. SET_TARGET_PROPERTIES(VirtualMath PROPERTIES OUTPUT_NAME "hellovm")
  33. set_target_properties(VirtualMath PROPERTIES INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") # 添加rpath
  34. INSTALL(TARGETS VirtualMath)