使用CMAKE单独构建调试和发布

时间:2017-09-13 03:39:36

标签: makefile cmake

我正在尝试构建一个复制我一直使用的Makefile的CMake文件。我的教授为我们提供了一个可以使用的CMakeLists.txt工作,但是我试图对它进行自定义,因此它的行为与我的Makefile相同,因为我为每个构建使用不同的标志。

这是我的Makefile:

OBJS = Assign1.cpp 

CC = g++
DEBUG_FLAGS = -O0 -g3 -fsanitize=address
RELEASE_FLAGS = -O3 -g0
FLAGS = -std=c++14 -Wall -Wextra

release: $(OBJS)
        $(CC) $(RELEASE_FLAGS) $(FLAGS) $(OBJS) -o Assign1

debug: $(OBJS) 
        $(CC) $(DEBUG_FLAGS) $(FLAGS) $(OBJS) -o debug && cgdb ./debug

在命令行中,我只需键入make,它就会自动默认释放。如果我输入make debug,它将进行调试并在可执行文件上运行cgdb。

我已尝试对我的CMake文件执行相同的操作,但如果这是正确的术语,我不知道如何设置/运行不同的可执行文件。这是我的Cmake文件:

cmake_minimum_required(VERSION 3.5)
project(Assignment2)

set(RELEASE "-O3 -g0")
set(DEBUG "-O0 -g3 -fsanitize=address")
set(CMAKE_CXX_FLAGS "-std=c++14 -Wall -Wextra")

set(SOURCE_FILES main.cpp compute-e.hpp compute-e.cpp compute-fib.cpp compute-fib.hpp compute-pi.cpp compute-pi.hpp)

add_executable(Assign2 ${RELEASE} ${CMAKE_CXX_FLAGS} ${SOURCE_FILES})
add_executable(debug ${DEBUG} ${CMAKE_CXX_FLAGS} ${SOURCE_FILES} && cgdb ./debug)

我需要做些什么才能让它发挥作用?我理解Makefile比我做CMake文件更好。

0 个答案:

没有答案