-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCmakeLists.txt
38 lines (32 loc) · 1.21 KB
/
CmakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
cmake_minimum_required(VERSION 2.8)
project(virtualComputer)
#项目全局变量
set(CMAKE_CXX_COMPILER "g++")
set(CMAKE_CXX_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS_DEBUG "-g3")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(EXECUTABLE_OUTPUT_PATH ./output/bin)
set(LIBRARY_OUTPUT_PATH ./output/lib)
#base库
aux_source_directory(${PROJECT_SOURCE_DIR}/src/kernel/base BASE_LIB_SRC)
add_library(base STATIC ${BASE_LIB_SRC})
#computer库
aux_source_directory(${PROJECT_SOURCE_DIR}/src/kernel COMPUTER_LIB_SRC)
add_library(computer STATIC ${COMPUTER_LIB_SRC})
#可执行文件
aux_source_directory(${PROJECT_SOURCE_DIR}/src SRC_LIST)
include_directories(${PROJECT_SOURCE_DIR}/src/kernel)
include_directories(${PROJECT_SOURCE_DIR}/src/kernel/base)
#生成最终文件
if(${CMAKE_BUILD_TYPE} MATCHES "release")
add_executable(virtualComputer ${SRC_LIST})
target_link_libraries(virtualComputer base computer)
add_executable(asm tool/asm.cpp)
target_link_libraries(asm base)
else()
add_executable(virtualComputer-debug ${SRC_LIST})
target_link_libraries(virtualComputer-debug base computer)
add_executable(asm-debug tool/asm.cpp)
target_link_libraries(asm-debug base)
add_subdirectory(${PROJECT_SOURCE_DIR}/test)
endif()