Added Makefile cmake wrapper

master
Jef Roosens 2020-11-06 13:03:16 +01:00
parent 6a203b3fe5
commit d83fb29d6b
4 changed files with 57 additions and 48 deletions

12
.gitignore vendored
View File

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

45
Makefile 100644
View File

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

View File

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

View File

@ -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}")