CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#添加工程
PROJECT(test)
SET(SRC_LIST hi.c)
#用以控制 if-else的书写方式
SET(CMAKE_ALLOW_LOSSE_LOOP_CONSTRUCTS ON)
#设置配置类型
SET(CMAKE_CONFIGURATION_TYPES Debug)
## 暂时没啥用,考虑到以后可能会在一个文件中搭建多个平台的时候使用
SET(OS_WINDOWS ON)
SET(OS_NAME "windows")
SET(IS_MSVC ON)
SET(ARCHITECTURE_TYPE "32")
SET(ARCH_TYPE_32 ON)
SET(ARCH_TYPE_NAME "x32")
## 加入驱动需要的头文件和库文件
INCLUDE_DIRECTORIES(C:\\WinDDK\\7600.16385.0\\inc\\api)
INCLUDE_DIRECTORIES(C:\\WinDDK\\7600.16385.0\\inc\\ddk)
INCLUDE_DIRECTORIES(C:\\WinDDK\\7600.16385.0\\inc\\crt)
LINK_DIRECTORIES(C:\\WinDDK\\7600.16385.0\\lib\\wnet\\i386)
LINK_DIRECTORIES(C:\\WinDDK\\7600.16385.0\\lib\\Crt\\i386)
## 暂时没啥用
SET(ROOT_DIR ${PROJECT_SOURCE_DIR})
## 输出目录设置
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/${ARCH_TYPE_NAME})
# 添加了预处理
ADD_DEFINITIONS(-D_X86_)
## 对C/C++的编译选项的设置,命令行有bug,gui的没问题
SET(CMAKE_C_FLAGS "/nologo /W3 /EHsc /Zi /Od /Gm /MDd /Gz")
SET(CMAKE_CXX_FLAGS ${CMAKE_C_FLAGS})
## 添加一些依赖的库
SET(CMAKE_C_STANDARD_LIBRARIES "ntoskrnl.lib hal.lib fltmgr.lib")
SET(CMAKE_CXX_STANDARD_LIBRARIES ${CMAKE_C_FLAGS})
## 指定程序的入口
#SET(CMAKE_EXE_LINKER_FLAGS "/STACK:10000000")
SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO /ENTRY:DriverEntry")
#执行生成
ADD_EXECUTABLE(test ${SRC_LIST})
这个是X32位驱动的,X64的差不多,就是还需要进行一些小地方的修改而已。。。
PS:生成的bin需要将其后缀改为sys