12345678910111213141516171819202122232425262728293031323334353637383940 |
- CMAKE_MINIMUM_REQUIRED(VERSION 3.16)
- PROJECT(vmcore C)
- SET(CMAKE_C_STANDARD 11)
- SET(INCLUDE_DICT
- ${CMAKE_CURRENT_SOURCE_DIR}/include
- ${CMAKE_CURRENT_SOURCE_DIR}/parser/include
- ${CMAKE_CURRENT_SOURCE_DIR}/src/include
- ${CMAKE_CURRENT_SOURCE_DIR}/ofunc/include
- ${CMAKE_CURRENT_SOURCE_DIR}/md5/include
- )
- INCLUDE_DIRECTORIES(${INCLUDE_DICT} BEFORE)
- # 搜索源文件
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/memory MEM_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/parser PASER_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/src SRC_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/file FILE_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/gc GC_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ofunc/src OFUNC_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/ofunc/clib CLIB_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/signalhandler HANDLER_LIST)
- AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/md5 MD5_LIST)
- # 处理依赖库
- FIND_PATH(ffih ffi.h REQUIRED)
- INCLUDE_DIRECTORIES(${ffih})
- FIND_LIBRARY(libffi NAMES ffi REQUIRED)
- FIND_LIBRARY(libdl NAMES dl REQUIRED)
- MESSAGE("libdl = ${libdl}; libffi = ${libffi}")
- MESSAGE("ffi.h in ${ffih};")
- ADD_LIBRARY(vmcore SHARED ${SRC_LIST} ${GC_LIST} ${PASER_LIST} ${MEM_LIST} ${FILE_LIST} ${ARGUMENT_LIST} ${OFUNC_LIST} ${HANDLER_LIST} ${CLIB_LIST} ${MD5_LIST})
- TARGET_LINK_LIBRARIES(vmcore ${libffi} ${libdl} m)
- TARGET_INCLUDE_DIRECTORIES(vmcore PRIVATE INCLUDE_DICT)
- SET_TARGET_PROPERTIES(vmcore PROPERTIES PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/include/virtualmath.h)
- SET_TARGET_PROPERTIES(vmcore PROPERTIES OUTPUT_NAME "vmcore" VERSION 2.1)
- INSTALL(TARGETS vmcore)
|