diff --git a/.gitignore b/.gitignore index d4b250e..87ca7d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,7 @@ # IDE Directories .vim/ -.vscode/ -# CMake files -CMakeCache.txt -CMakeFiles/ -cmake_install.cmake -compile_commands.json -Makefile +# CMake build dir +build/ -# Final binary -stj +# compile_commands.json symlink diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0e9a9b9 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +SRC_DIR=src +RELEASE_DIR=build/release +DEBUG_DIR=build/debug + +all: debug +.PHONY: all + + +clean: + @ rm -rf build +.PHONY: clean + + +# Release +run-release: release + @ ./$(RELEASE_DIR) +.PHONY: run-release + +release: $(RELEASE_DIR)/Makefile + @ make -C $(RELEASE_DIR) +.PHONY: release + +$(RELEASE_DIR)/Makefile: $(SRC_DIR)/CMakeLists.txt + @ cmake -H$(SRC_DIR) -B$(RELEASE_DIR) -DCMAKE_BUILD_TYPE=Release + +clean-release: + @ rm -rf build/release +.PHONY: clean-release + + +# Debug +run-debug: debug + @ ./$(DEBUG_DIR) +.PHONY: run-debug + +debug: $(DEBUG_DIR)/Makefile + @ make -C $(DEBUG_DIR) +.PHONY: debug + +$(DEBUG_DIR)/Makefile: $(SRC_DIR)/CMakeLists.txt + @ cmake -H$(SRC_DIR) -B$(DEBUG_DIR) -DCMAKE_BUILD_TYPE=Debug + +clean-debug: + @ rm -rf build/debug +.PHONY: clean-debug diff --git a/config.mk b/config.mk deleted file mode 100644 index c070a4a..0000000 --- a/config.mk +++ /dev/null @@ -1,35 +0,0 @@ -# st version -VERSION = 0.8.4 - -# Customize below to fit your system - -# paths -PREFIX = /usr/local -MANPREFIX = $(PREFIX)/share/man - -X11INC = /usr/X11R6/include -X11LIB = /usr/X11R6/lib - -PKG_CONFIG = pkg-config - -# includes and libs -INCS = -I$(X11INC) \ - `$(PKG_CONFIG) --cflags fontconfig` \ - `$(PKG_CONFIG) --cflags freetype2` -LIBS = -L$(X11LIB) -lm -lrt -lX11 -lutil -lXft \ - `$(PKG_CONFIG) --libs fontconfig` \ - `$(PKG_CONFIG) --libs freetype2` - -# flags -STCPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -STCFLAGS = $(INCS) $(STCPPFLAGS) $(CPPFLAGS) $(CFLAGS) -STLDFLAGS = $(LIBS) $(LDFLAGS) - -# OpenBSD: -#CPPFLAGS = -DVERSION=\"$(VERSION)\" -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -#LIBS = -L$(X11LIB) -lm -lX11 -lutil -lXft \ -# `$(PKG_CONFIG) --libs fontconfig` \ -# `$(PKG_CONFIG) --libs freetype2` - -# compiler and linker -# CC = c99 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5b0c49a..5f96dec 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -5,9 +5,17 @@ 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() + # Set Compiler set(CMAKE_C_COMPILER "clang-10") -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_C_STANDARD 11) project(stj VERSION 0.1) @@ -17,9 +25,6 @@ file(GLOB main_SRC "*.c" "*.h") add_executable(stj x.c "${st_SRC}" "${main_SRC}") -# Set the standard to C11 -set_property(TARGET stj PROPERTY C_STANDARD 11) - # Find required packages find_package(Freetype 2 REQUIRED) target_include_directories(stj PRIVATE "${FREETYPE_INCLUDE_DIRS}")