Added Makefile cmake wrapper
							parent
							
								
									6a203b3fe5
								
							
						
					
					
						commit
						d83fb29d6b
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
							
								
								
									
										35
									
								
								config.mk
								
								
								
								
							
							
						
						
									
										35
									
								
								config.mk
								
								
								
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			@ -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}")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in New Issue