This commit is contained in:
Jenny White 2018-04-27 19:59:34 +03:00
parent 954dba2254
commit 323a21a218
2 changed files with 15 additions and 90 deletions

View File

@ -1,38 +1,39 @@
# This builds a 32-bit version of library, building 64 bit is not supported yet. # This builds a 32-bit version of library, building 64 bit is not supported yet.
cmake_minimum_required(VERSION 3.0) cmake_minimum_required(VERSION 3.0)
project(glez LANGUAGES C VERSION 0.0.1 DESCRIPTION "Basic OpenGL primitive + text drawing using freetype-gl")
set(glez_dest "lib/glez-${glez_VERSION}") project(glez LANGUAGES C VERSION 0.0.1)
set(include_dest "include/glez-${glez_VERSION}")
set(lib_dest "${glez_dest}/${CMAKE_BUILD_TYPE}") set(export_dest "lib/${PROJECT_NAME}-${PROJECT_VERSION}")
set(include_dest "include/${PROJECT_NAME}-${PROJECT_VERSION}")
set(lib_dest "${export_dest}/${CMAKE_BUILD_TYPE}")
find_package(Freetype REQUIRED) find_package(Freetype REQUIRED)
find_package(PNG REQUIRED) find_package(PNG REQUIRED)
find_package(GLEW REQUIRED) find_package(GLEW REQUIRED)
add_library(glez SHARED "") add_library(${PROJECT_NAME} SHARED "")
set_target_properties(glez PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32") set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
target_include_directories(glez PRIVATE target_include_directories(${PROJECT_NAME} PRIVATE
$<BUILD_INTERFACE:${glez_SOURCE_DIR}/include> $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
$<BUILD_INTERFACE:${glez_SOURCE_DIR}/ftgl> $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/ftgl>
$<BUILD_INTERFACE:${FREETYPE_INCLUDE_DIRS}> $<BUILD_INTERFACE:${FREETYPE_INCLUDE_DIRS}>
$<BUILD_INTERFACE:${PNG_INCLUDE_DIR}> $<BUILD_INTERFACE:${PNG_INCLUDE_DIR}>
$<BUILD_INTERFACE:${GLEW_INCLUDE_DIRS}> $<BUILD_INTERFACE:${GLEW_INCLUDE_DIRS}>
$<INSTALL_INTERFACE:${include_dest}> $<INSTALL_INTERFACE:${include_dest}>
) )
target_compile_definitions(glez PRIVATE ${PNG_DEFINITIONS}) target_compile_definitions(${PROJECT_NAME} PRIVATE ${PNG_DEFINITIONS})
target_link_libraries(glez ${FREETYPE_LIBRARIES} ${PNG_LIBRARIES} ${GLEW_LIBRARIES}) target_link_libraries(${PROJECT_NAME} ${FREETYPE_LIBRARIES} ${PNG_LIBRARIES} ${GLEW_LIBRARIES})
add_subdirectory(include) add_subdirectory(include)
add_subdirectory(src) add_subdirectory(src)
add_subdirectory(ftgl) add_subdirectory(ftgl)
install(TARGETS glez EXPORT glez DESTINATION "${lib_dest}") install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME} DESTINATION "${lib_dest}")
install(FILES "include/glez.h" DESTINATION "${include_dest}") install(FILES "include/glez.h" DESTINATION "${include_dest}")
install(EXPORT glez DESTINATION "${lib_dest}") install(EXPORT ${PROJECT_NAME} DESTINATION "${lib_dest}")
install(FILES glez-config.cmake DESTINATION ${glez_dest}) install(FILES ${PROJECT_NAME}-config.cmake DESTINATION ${export_dest})

View File

@ -1,76 +0,0 @@
CC=$(shell sh -c "which gcc-7 || which gcc")
CFLAGS=-O3 -Wall -fPIC -fmessage-length=0 -D_GNU_SOURCE=1 -g3 -ggdb -Iinclude -isystemftgl -isystem/usr/local/include/freetype2 -isystem/usr/include/freetype2
LDFLAGS=-shared -Wl,--no-undefined
LDLIBS=-lm -lrt -lGL -lfreetype -lGLEW -lpng
SRC_DIR=src
BIN32_DIR=bin32
BIN64_DIR=bin64
SOURCES=$(shell find $(SRC_DIR) -name "*.c" -print)
SOURCES+=$(shell find "ftgl" -name "*.c" -print)
OBJECTS=$(SOURCES:.c=.o)
LIB32_PATH=/lib/i386-linux-gnu
LIB64_PATH=/lib/x86_64-linux-gnu
TARGET32=$(BIN32_DIR)/libglez.so
TARGET64=$(BIN64_DIR)/libglez.so
TARGET=undefined
.PHONY: clean clean_objects
ifeq ($(ARCH),32)
CFLAGS+=-m32
LDFLAGS+=-m32
TARGET=$(TARGET32)
endif
ifeq ($(ARCH),64)
TARGET=$(TARGET64)
endif
all:
mkdir -p $(BIN32_DIR)
mkdir -p $(BIN64_DIR)
ifndef ARCH
$(MAKE) clean_objects
$(MAKE) -e ARCH=32
$(MAKE) clean_objects
$(MAKE) -e ARCH=64
else
$(MAKE) clean_objects
$(MAKE) $(TARGET)
endif
install:
cp $(TARGET32) $(LIB32_PATH)
cp $(TARGET64) $(LIB64_PATH)
cp -R include/. /usr/local/include/glez
ftgl/distance-field.o : CFLAGS+=-w
ftgl/edtaa3func.o : CFLAGS+=-w
ftgl/font-manager.o : CFLAGS+=-w
ftgl/mat4.o : CFLAGS+=-w
ftgl/platform.o : CFLAGS+=-w
ftgl/shader.o : CFLAGS+=-w
ftgl/text-buffer.o : CFLAGS+=-w
ftgl/texture-atlas.o : CFLAGS+=-w
ftgl/utf8-utils.o : CFLAGS+=-w
ftgl/texture-font.o : CFLAGS+=-w
ftgl/vector.o : CFLAGS+=-w
ftgl/vertex-attribute.o : CFLAGS+=-w
ftgl/vertex-buffer.o : CFLAGS+=-w
ftgl/makefont.o : CFLAGS+=-w
.c.o:
$(CC) $(CFLAGS) -c $< -o $@
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@
clean_objects:
find . -type f -name '*.o' -delete
clean:
find . -type f -name '*.o' -delete
find . -type f -name '*.d' -delete
rm -f bin32/*.so
rm -f bin64/*.so