From 66093b4858ae60521de1c1779cb0168476b88f5b Mon Sep 17 00:00:00 2001 From: Chewing_Bever Date: Fri, 6 Nov 2020 15:45:41 +0100 Subject: [PATCH] Added extra compiler flags --- Makefile | 11 ++++++----- src/CMakeLists.txt | 36 ++++++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 0e9a9b9..a3d2a4c 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ -SRC_DIR=src -RELEASE_DIR=build/release -DEBUG_DIR=build/debug +SRC_DIR = src +RELEASE_DIR = build/release +DEBUG_DIR = build/debug +BINARY = stj all: debug .PHONY: all @@ -13,7 +14,7 @@ clean: # Release run-release: release - @ ./$(RELEASE_DIR) + @ ./$(RELEASE_DIR)/$(BINARY) .PHONY: run-release release: $(RELEASE_DIR)/Makefile @@ -30,7 +31,7 @@ clean-release: # Debug run-debug: debug - @ ./$(DEBUG_DIR) + @ ./$(DEBUG_DIR)/$(BINARY) .PHONY: run-debug debug: $(DEBUG_DIR)/Makefile diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5f96dec..820e61d 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,27 +5,39 @@ if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() -# Set build dirs (keeps things clean) -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - # TODO add adress sanitizer flags n stuff -elseif(CMAKE_BUILD_TYPE STREQUAL "Release") - # TODO add optimization flags -endif() +# Create compile_commands.json +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -# Set Compiler + +# =====COMPILER===== set(CMAKE_C_COMPILER "clang-10") set(CMAKE_C_STANDARD 11) + project(stj VERSION 0.1) -# List all files needed in final binary + +# =====COMPILE FLAGS===== +# General flags +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVERSION=\"${CMAKE_PROJECT_VERSION}\"") + +# Debug flags +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -g -Wall -O0 -march=native") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") +set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") + +# Release flags +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -O3 -Werror -march=native") + + +# =====EXECUTABLE===== file(GLOB st_SRC "st/*.c" "st/*.h") file(GLOB main_SRC "*.c" "*.h") add_executable(stj x.c "${st_SRC}" "${main_SRC}") -# Find required packages + +# =====PACKAGES & LIBRARIES===== find_package(Freetype 2 REQUIRED) target_include_directories(stj PRIVATE "${FREETYPE_INCLUDE_DIRS}") target_link_libraries(stj PRIVATE "${FREETYPE_LIBRARIES}") @@ -38,12 +50,8 @@ find_package(X11 REQUIRED) target_include_directories(stj PRIVATE "${X11_INCLUDE_DIR}") target_link_libraries(stj PRIVATE "${X11_LIBRARIES}") -# Needed to work; copied from original Makefile target_link_libraries(stj PRIVATE m) target_link_libraries(stj PRIVATE rt) target_link_libraries(stj PRIVATE util) target_link_libraries(stj PRIVATE Xft) target_link_libraries(stj PRIVATE Xrender) - -# Add version as flag -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVERSION=\"${CMAKE_PROJECT_VERSION}\"")