Explorar o código

feat: 在cmake添加安装程序

SongZihuan %!s(int64=4) %!d(string=hai) anos
pai
achega
5c6efb222a
Modificáronse 3 ficheiros con 13 adicións e 10 borrados
  1. 2 2
      .gitignore
  2. 7 3
      CMakeLists.txt
  3. 4 5
      vmcore/CMakeLists.txt

+ 2 - 2
.gitignore

@@ -231,5 +231,5 @@ gen
 /Demo
 vgcore.*
 .vs
-/bin
-/lib
+/bin*
+/lib*

+ 7 - 3
CMakeLists.txt

@@ -5,10 +5,10 @@ SET(CMAKE_C_STANDARD 11)
 OPTION(GC "GC" ON)
 OPTION(SET_DEBUG "SET_DEBUG" ON)
 
-SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
+SET(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/lib-${CMAKE_BUILD_TYPE})
 SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
 SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
-SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin)
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/bin-${CMAKE_BUILD_TYPE})
 
 IF (${SET_DEBUG})
     ADD_DEFINITIONS(-DDEBUG=1)
@@ -37,4 +37,8 @@ LINK_DIRECTORIES(${vmcore_BINARY_DIR})  # 添加vmcore的构建目录为寻找li
 ADD_SUBDIRECTORY(${PROJECT_SOURCE_DIR}/vmcore)
 LINK_LIBRARIES(vmcore)
 ADD_EXECUTABLE(VirtualMath main.c ${SRC_LIST} ${ARGUMENT_LIST})
-SET_TARGET_PROPERTIES(VirtualMath PROPERTIES OUTPUT_NAME "hellovm")
+SET_TARGET_PROPERTIES(VirtualMath PROPERTIES OUTPUT_NAME "hellovm")
+
+INSTALL(DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ DESTINATION bin)
+INSTALL(DIRECTORY ${LIBRARY_OUTPUT_PATH}/ DESTINATION lib)
+INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/vmcore/include/virtualmath.h DESTINATION include)

+ 4 - 5
vmcore/CMakeLists.txt

@@ -27,12 +27,11 @@ AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/md5 MD5_LIST)
 FIND_PATH(ffih ffi.h REQUIRED)
 INCLUDE_DIRECTORIES(${ffih})
 
-FIND_LIBRARY(libffi NAMES ffi PATHS REQUIRED)
-FIND_LIBRARY(libdl dl REQUIRED)
-FIND_LIBRARY(libm m REQUIRED)
+FIND_LIBRARY(libffi NAMES ffi REQUIRED)
+FIND_LIBRARY(libdl NAMES dl REQUIRED)
 
-MESSAGE("libm = ${libm}; libdl = ${libdl}; libffi = ${libffi}")
+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} ${libm})
+TARGET_LINK_LIBRARIES(vmcore ${libffi} ${libdl} m)
 SET_TARGET_PROPERTIES(vmcore PROPERTIES OUTPUT_NAME "vmcore" VERSION 2.1)