1. 程式人生 > >CMAKE命令和VS屬性對照表

CMAKE命令和VS屬性對照表

 

下文中表來自:https://blog.csdn.net/xum2008/article/details/7268761?source=1,僅做記載。

Visual Studio     Cmake
Project Reference     add_dependencies()
General/Output Directory      
       
       
Debugging/Working Directory     CMAKE can’t set this value, because the info not stored in project file but some intermedia file generated by visual studio
       
c/c++ General Additional Include Directories include_directories()
    Resolve #using References Don’t know
    Debug Information Format CMAKE FAQ 
set(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi
/Ob0 /Od /RTC1") 
set(CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG") 
Change the default flags for specific config.
    Common language runtime support set_target_properties( target PROPERTIES COMPILE_FLAGS “/clr”) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/clr:pure”) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/clr:safe”) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/clr:oldSynax”)
    Suppress Startup Banner set_target_properties( target PROPERTIES COMPILE_FLAGS “/nologo” )
    Warning Level set_target_properties( target PROPERTIES COMPILE_FLAGS “/W0” ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/W1” ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/W2” ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/W3” ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/W4" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Wall” )
    Treat Warnings As Errors set_target_properties( target PROPERTIES COMPILE_FLAGS “/WX-" ) #No 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/WX" )  #Yes
    Multi-processor Compilation set_target_properties( target PROPERTIES COMPILE_FLAGS “/MP" )  #Yes 
#Don’t set means No
    Use Unicode For Assembler Listing set_target_properties( target PROPERTIES COMPILE_FLAGS “/FAu" ) #yes 
#Don’t set means no
  Optimization Optimization set(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi/Ob0 /Od /RTC1") 
set(CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2/Ob1 /D NDEBUG") 
Change the default flags for specific config.
    Inline Function Expansion set(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi/Ob0 /Od /RTC1") 
set(CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG") 
Change the default flags for specific config.
    Enable Intrinsic Functions set_target_properties( target PROPERTIES COMPILE_FLAGS “/Oi" ) #yes 
#Don’t set means no
    Favor Size or Speed set_target_properties( target PROPERTIES COMPILE_FLAGS “/Os" ) #size 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Ot" ) #speed 
#Don’t set means neither
    Omit Frame Pointers set_target_properties( target PROPERTIES COMPILE_FLAGS “/Oy-" ) #no 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Oy" ) #yes
    Enable Fiber-safe Optimizations set_target_properties( target PROPERTIES COMPILE_FLAGS “/GT" ) #yes 
#not setting means no
    Whole Program Optimization set_target_properties( target PROPERTIES COMPILE_FLAGS “/GL" ) #yes 
#not setting means no
  Preprocessor Preprocessor Definitions set_target_properties( target PROPERTIES COMPILE_DEFINITIONS DEFNAME=DEFVAL ) 
set_source_files_properties( filename.cpp PROPERTIES COMPILE_DEFINITIONS DEFNAME=DEFVAL )
    Undefine Preprocessor Definitions set_target_properties( target PROPERTIES COMPILE_FLAGS “/UDEFNAME" )
    Undefine All Preprocessor Definitions set_target_properties( target PROPERTIES COMPILE_FLAGS “/u" )
    Ignore Standard Include Path set_target_properties( target PROPERTIES COMPILE_FLAGS “/X" )
    Preprocess to a File set_target_properties( target PROPERTIES COMPILE_FLAGS “/P" )
    Preprocess Suppress Line Numbers set_target_properties( target PROPERTIES COMPILE_FLAGS “/EP" )
    Keep Comments set_target_properties( target PROPERTIES COMPILE_FLAGS “/C" )
  Code Generation Enable String Pooling set_target_properties( target PROPERTIES COMPILE_FLAGS “/GF" ) #yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/GF-" ) #no
    Enable Minimum Rebuild set_target_properties( target PROPERTIES COMPILE_FLAGS “/Gm" ) #yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Gm-" )#no
    Enable C++ Exceptions set_target_properties( target PROPERTIES COMPILE_FLAGS “/EHsc" ) #yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/EHa" ) #yes, with SEH exceptions 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/EHs" ) #yes, with extern C functions 
#not setting means no
    Smaller Type Check set_target_properties( target PROPERTIES COMPILE_FLAGS “/RTCc" ) #yes 
#not setting means no
    Basic Runtime Checks set_target_properties( target PROPERTIES COMPILE_FLAGS “/RTCs" ) #Stack frame check 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/RTCu" ) #Uninitialized Variable 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/TRC1" ) #Both 
#not setting means no
    Runtime Library CMAKE FAQ 
set(CMAKE_C_FLAGS_DEBUG_INIT "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1") 
set(CMAKE_C_FLAGS_MINSIZEREL_INIT "/MT /O1 /Ob1 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELEASE_INIT "/MT /O2 /Ob2 /D NDEBUG") 
set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "/MT /Zi /O2 /Ob1 /D NDEBUG") 
Change the default flags for specific config.
    Struct Member Alignment set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zp1" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zp2" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zp4" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zp8" )set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zp16" )
    Buffer Security Check set_target_properties( target PROPERTIES COMPILE_FLAGS “/GS" ) #yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/GS-" ) #no
    Enable Function-Level Linking set_target_properties( target PROPERTIES COMPILE_FLAGS “/Gy" ) #yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Gy-" ) #no
    Enable Enhaunced Instruction Set set_target_properties( target PROPERTIES COMPILE_FLAGS “/arch:SSE" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/arch:SSE2" )
    Floating Point Model set_target_properties( target PROPERTIES COMPILE_FLAGS “/fp:precise" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/fp:strict" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/fp:fast" )
    Enable Floating Point Exceptions set_target_properties( target PROPERTIES COMPILE_FLAGS “/fp:except" )
    Create Hotpatchable Image set_target_properties( target PROPERTIES COMPILE_FLAGS “/hotpatch" )
  Language Disable Language Extensions set_target_properties( target PROPERTIES COMPILE_FLAGS “/Za" )
    Treat Wchar_t As Built in Type set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zc:wchar_t" )#yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/Zc:wchar_t-" ) #no
    Force Conformance in For Loop Scope  
    Enable Run-Time Type Information set_target_properties( target PROPERTIES COMPILE_FLAGS “/GR" ) #yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/GR-" ) #no
    Open MP Support set_target_properties( target PROPERTIES COMPILE_FLAGS “/openmp" )#yes 
set_target_properties( target PROPERTIES COMPILE_FLAGS “/openmp-" )#no
  PreCompiled Header PreCompiled Header set_target_properties( target PROPERTIES COMPILE_FLAGS "/Yc" ) #create 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/Yu" ) #use 
#not setting means no
    PreCompiled Header File set_target_properties( target PROPERTIES COMPILE_FLAGS "/Ycstdafx.h" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/Yustdafx.h" )
    Precompiled Header output File set_target_properties( target PROPERTIES COMPILE_FLAGS "/FpPathAndName.pch" )
  Output Files Expand Attributed Source set_target_properties( target PROPERTIES COMPILE_FLAGS "/Fx" )
    Assembler Output set_target_properties( target PROPERTIES COMPILE_FLAGS "/FA" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/FAc" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/FAs" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/FAcs" ) 
#not setting means no list
    ASM List Location set_target_properties( target PROPERTIES COMPILE_FLAGS "/FaDebug" )
    Object File name set_target_properties( target PROPERTIES COMPILE_FLAGS "/FoName.obj" )
    Program DataBase File Name set_target_properties( target PROPERTIES COMPILE_FLAGS "/FdC:/Debug/good.pdb" )
    Generate XML Documentation Files set_target_properties( target PROPERTIES COMPILE_FLAGS "/doc" )
    XML Documentation Filename set_target_properties( target PROPERTIES COMPILE_FLAGS "/docDocument.xml" )
  Browse Information Enable Browse Information set_target_properties( target PROPERTIES COMPILE_FLAGS "/FR" )
    Browse Information File set_target_properties( target PROPERTIES COMPILE_FLAGS "/FRfilename" )
  Advanced Calling Convention set_target_properties( target PROPERTIES COMPILE_FLAGS "/Gd" ) #_cdecl 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/Gr" )  #_fastcall 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/Gz" ) #_stdcall
    Compile As set_target_properties( target PROPERTIES LINKER_LANGUAGE "CXX" ) #C++ 
set_target_properties( target PROPERTIES LINKER_LANGUAGE "C" ) #C 
or 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/TP" ) #CXX 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/TC" ) #C
    Disable Specific Warnings set_target_properties( target PROPERTIES COMPILE_FLAGS "/wd4710" )
    Forced Include File set_target_properties( target PROPERTIES COMPILE_FLAGS "/FIinclude.h" )
    Forced #using File set_target_properties( target PROPERTIES COMPILE_FLAGS "/FUname" )
    Show Includes set_target_properties( target PROPERTIES COMPILE_FLAGS "/showIncludes" )
    Use full Paths set_target_properties( target PROPERTIES COMPILE_FLAGS "/FC" )
    Omit Default Library name set_target_properties( target PROPERTIES COMPILE_FLAGS "/ZI" )
    Internal Compiler Error Reporting set_target_properties( target PROPERTIES COMPILE_FLAGS "/errorReport:queue" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/errorReport:none" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/errorReport:prompt" ) 
set_target_properties( target PROPERTIES COMPILE_FLAGS "/errorReport:send" )
    Treat Specific Warnings as Errors Don't know
Linker General Output File #normal case 
set_target_properties( target PROPERTIES OUTPUT_NAME "Helloworld" ) 
set_target_properties( target PROPERTIES PREFIX "lib" ) 
set_target_properties( target PROPERTIES SUFFIX "lib" ) 

#for debug version 
set_target_properties( target PROPERTIES DEBUG_OUTPUT_NAME "Helloworld" ) 
set_target_properties( target PROPERTIES DEBUG_PREFIX "lib" ) 
set_target_properties( target PROPERTIES DEBUG_SUFFIX "lib" ) 

#For dlls 
set_target_properties( target PROPERTIES OUTPUT_NAME "Helloworld" ) 
set_target_properties( target PROPERTIES IMPORT_PREFIX "lib" ) 
set_target_properties( target PROPERTIES IMPORT_SUFFIX "lib" ) 
set_target_properties( target PROPERTIES PREFIX "bin" ) 
set_target_properties( target PROPERTIES SUFFIX "dll" ) 

#output path
    Show Progress set_target_properties( target PROPERTIES LINK_FLAGS "/VERBOSE" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/VERBOSE:Lib" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/VERBOSE:ICF" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/VERBOSE:REF" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/VERBOSE:SAFESEH" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/VERBOSE:CLR" ) 
#not setting means no
    Version set_target_properties( target PROPERTIES VERSION 0.1.2.3)
    Enable Incremental Linking set_target_properties( target PROPERTIES LINK_FLAGS "/INCREMENTAL" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/INCREMENTAL:NO" ) 

set( CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL" ) 
set( CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO" )
    Suppress Startup Banner set_target_properties( target PROPERTIES LINK_FLAGS "/NOLOGO" )
    Ignore Import Library Don't know
    Register Output Don't know
    Per-user Redirection Don't know
    Additional Library Directories link_directories( dir1 dir2 ) 

set_target_properties( target PROPERTIES LINK_FLAGS "/LIBPATH:dir1 /LIBPATH:dir2" )
    Link Library Dependencies Don't know
    Use Library Dependency Inputs Don't know
    Link Status set_target_properties( target PROPERTIES LINK_FLAGS "/LTCG:STATUS" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/LTCG:NOSTATUS" )
    Prevent DLL Binding set_target_properties( target PROPERTIES LINK_FLAGS "/ALLOWBIND:NO" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/ALLOWBIND:YES" )
    Treat Linker Warnings As Errors set_target_properties( target PROPERTIES LINK_FLAGS "/WX" )
    Force File Output set_target_properties( target PROPERTIES LINK_FLAGS "/FORCE" )
    Create Hot Patchable Image set_target_properties( target PROPERTIES LINK_FLAGS "/FUNCTIONPADMIN" ) 
set_target_properties( target PROPERTIES LINK_FLAGS "/FUNCTIONPADMIN:16" ) #Itanium only 
set_target_properties( target PROPERTIES LINK_FLAGS "/FUNCTIONPADMIN:6" ) #x64 only 
set_target_properties( target PROPERTIES LINK_FLAGS "/FUNCTIONPADMIN:5" ) #x86 only
    Specify Section Attributes Don't know
  Input Additional Dependancies target_link_libraries( target item1 item2 )
    Ignore All Default Libraries set_target_properties( target PROPERTIES LINK_FLAGS "/NODEFAULTLIB" )
       
       
       
Put files into folders     source_group( header FILES includeme.h )