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 ) |
|
|
|
|
|
|
|
|
|
|
|
|