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