CMAKE_MINIMUM_REQUIRED(VERSION 3.16) PROJECT(vm_clib_src C) SET(CMAKE_C_STANDARD 11) INCLUDE_DIRECTORIES(${VMCORE_INCLUDE_DICT} BEFORE) INCLUDE_DIRECTORIES(${OFUNC_INCLUDE_DICT} BEFORE) FUNCTION(SET_CLIB PATH NAME) # clib 编译为动态库, 但是不直接链接进入程序 STRING(REGEX REPLACE ".+/(.+)\\..*" "\\1" FILE_NAME ${PATH}) ADD_LIBRARY(${FILE_NAME} SHARED ${PATH}) TARGET_LINK_LIBRARIES(${FILE_NAME} vmcore_src) SET_TARGET_PROPERTIES(${FILE_NAME} PROPERTIES OUTPUT_NAME "vm${NAME}") INSTALL(TARGETS ${FILE_NAME}) ENDFUNCTION() SET_CLIB(sys_lib.c sys) SET_CLIB(time_lib.c time)