cmake设置mfc编译项目

cmake_minimum_required( VERSION 3.0 )

#项目名
set ( PROJ_NAME  DCMLIB )
project ( ${PROJ_NAME} )

#设置变量
set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ON )

set ( CMAKE_AUTOMOC ON )#set()就是设置变量
set ( CMAKE_AUTORCC ON )

# 3) 取得源文件列表
AUX_SOURCE_DIRECTORY( ../../common      PROJ_SRC_COMMON_LIST )#查询commom文件夹下的所有cpp文件
#资源文件一般是QT会用到
set ( PROJ_QRC_LIST   )
set ( PROJ_SRC_LIST  ${PROJ_SRC_COMMON_LIST})

message("Found source files:")#message就跟c++的printf一样打印出结果
foreach( F ${PROJ_SRC_LIST} )
message(${F})
endforeach(${F})

message("Found QRC files:")
foreach( F ${PROJ_QRC_LIST} )
message(${F})
endforeach(${F})


# 4) 处理
if( MINGW )
  set ( CMAKE_RC_COMPLIER_INIT windres )
  enable_language( RC )
  set ( CMAKE_RC_COMPLIE_OBJECT
        "<CMAKE_RC_COMPLIER> <FLAGS> -o coff <DEFINES> -i <SOURCE> -o <OBJECT>")
endif()

# 5) 确定目标
set ( WIN_SYSTEM )
if(WIN32)
  if(MSVC)
     set ( WIN_SYSTEM  "WIN32" ) 
  elseif(CMAKE_COMPLIER_IS_GNUCXX)
     set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows")
  else()
  endif()
elseif(UNIX)
  # nothing to do
else()
  message(SEND_ERROR "This cmake file only used in Windows!")
endif()

set(CMAKE_CXX_FLAGS_DEBUG    "${CMAKE_CXX_FLAGS_DEBUG}   -DQLEMR_CFG_DIAG_USE_MEM_CNTR  -DQLEMR_CFG_DIAG_USE_ASSERT -DQLEMR_CFG_DIAG_USE_DBG_OUTPUT ")
set(CMAKE_C_FLAGS_DEBUG      "${CMAKE_C_FLAGS_DEBUG}     -DQLEMR_CFG_DIAG_USE_MEM_CNTR  -DQLEMR_CFG_DIAG_USE_ASSERT -DQLEMR_CFG_DIAG_USE_DBG_OUTPUT ")
set(CMAKE_CXX_FLAGS_RELEASE  "${CMAKE_CXX_FLAGS_RELEASE} -DQLEMR_CFG_DIAG_USE_MEM_CNTR  ")
set(CMAKE_C_FLAGS_RELEASE    "${CMAKE_C_FLAGS_RELEASE}   -DQLEMR_CFG_DIAG_USE_MEM_CNTR  ")
#添加头文件包含目录
include_directories( ../../third-part/include)
#添加lib文件链接目录
link_directories( ${PROJECT_SOURCE_DIR}/../../third-part/lib )

#设置预编译项
add_definitions( -DQLEMR_CFG_DLL )
#共享DLL中使用 MFC
ADD_DEFINITIONS(-D_AFXDLL)
SET(CMAKE_MFC_FLAG 2)#设置CMAKE_MFC_FLAG为2,0表示使用标准的MFC,1表示静态MFC,2表示共享
add_executable(DCMLIB WIN32 ${PROJ_SRC_LIST}) #第一个参数是项目名字,第二个是,win32,第三个是所有的cpp文件列表
#设置字符集
add_definitions(-DUNICODE -D_UNICODE)
# 生成什么库,STATIC静态,SHARED动态库
add_library( dcmlib STATIC ${PROJ_SRC_LIST} ${PROJ_QRC_LIST} )
#添加链接库 
target_link_libraries( dcmlib debug      Ws2_32.lib netapi32.lib )
target_link_libraries( dcmlib optimized  Ws2_32.lib netapi32.lib  )

#设置目标属性 
set_target_properties( dcmlib PROPERTIES DEBUG_OUTPUT_NAME      dcmlib )
set_target_properties( dcmlib PROPERTIES RELEASE_OUTPUT_NAME    dcmlibd  )
# 6) 复制生成文件
install( FILES       ${PROJECT_SOURCE_DIR}/../../update.txt
         DESTINATION ${CMAKE_INSTALL_PREFIX} )#DESTINATION指定安装路径





  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vqt5_qt6

你的鼓励是我们创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值