
添加 C flags
# default
SET(CMAKE_CXX_FLAGS " $ENV{CXXFLAGS} -Wall -g -ggdb -O3 --std=c++11")
# use cmake -DCMAKE_BUILD_TYPE=debug ..
#SET(CMAKE_CXX_FLAGS_DEBUG " $ENV{CXXFLAGS} -Wall -g -ggdb --std=c++11")
# use cmake -DCMAKE_BUILD_TYPE=release ..
#SET(CMAKE_CXX_FLAGS_RELEASE " $ENV{CXXFLAGS} -Wall -O3 --std=c++11")
同理, 要是 C99 的话
SET(CMAKE_C_FLAGS "$ENV{CFLAGS} -Wall -g -ggdb -O3 --std=c99")
#SET(CMAKE_C_FLAGS_DEBUG "$ENV{CFLAGS} -Wall -g -ggdb --std=c99")
#SET(CMAKE_C_FLAGS_RELEASE " $ENV{CFLAGS} -Wall -O3 --std=c99")
给你个例子:project(NumRandom)
cmake_minimum_required(VERSION 2.8)
add_definitions(-D_UNICODE -DUNICODE)
add_definitions("/wd4819")
if(NOT ${CMAKE_BUILD_TYPE} MATCHES "Debug")
set(WINDOWS WIN32)
add_definitions(-D_IRR_STATIC_LIB_)
set(LIBRARIES Irrlicht_S.lib)
else()
set(LIBRARIES Irrlicht.lib)
endif()
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /MANIFEST:NO")
foreach(flag_var
CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO
CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endif()
endforeach()
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${WINDOWS} ${SRC_LIST})
set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/ENTRY:mainCRTStartup")
target_link_libraries(${PROJECT_NAME} ${LIBRARIES})
以及一个target的调用方法:
cmd /C "if not exist Build (mkdir Build &&chdir Build &&cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel .. &&nmake verbose=1) else chdir Build &&cmake -G"NMake Makefiles" -DCMAKE_BUILD_TYPE=MinSizeRel .. &&nmake"
注意其中的:-DCMAKE_BUILD_TYPE=MinSizeRel
转载
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)