Pruned out and merged in th erest of the migrate_build files.

This commit is contained in:
Pietro Gagliardi 2016-06-04 18:52:40 -04:00
parent 0bca3e21da
commit acbeb86c7f
7 changed files with 16 additions and 283 deletions

View File

@ -138,15 +138,29 @@ if(BUILD_SHARED_LIBS)
endif()
if(NOT BUILD_SHARED_LIBS)
_handle_static()
# TODO this really should be PRIVATE but I haven't fully figured this out
# TODO figure out a way to tell libui that it's static
target_compile_definitions(${_LIBUINAME}
PUBLIC _UI_STATIC)
PUBLIC _UI_STATIC)
endif()
if(NOT MSVC)
# on non-MSVC compilers cmake adds an extra lib-
# note that we apply this to libui, not to any intermediates
set_target_properties(libui PROPERTIES
OUTPUT_NAME ui)
# flags for warning on undefined symbols
# TODO figure out why FreeBSD follows linked libraries here
# TODO figure out MSVC equivalents
if(BUILD_SHARED_LIBS)
if(NOT (${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD))
# on OS X we don't need to do this; Apple's linker warns about undefined symbols in -shared builds!
if(NOT APPLE)
target_link_libraries(libui
PRIVATE -Wl,--no-undefined -Wl,--no-allow-shlib-undefined
)
endif()
endif()
endif()
endif()
if(BUILD_SHARED_LIBS)
if(_HASVERSION)

View File

@ -1,53 +0,0 @@
# 16 october 2015
# Global flags.
CFLAGS += \
--std=c99
CXXFLAGS += \
--std=c++11
# Build rules.
OFILES = \
$(subst /,_,$(CFILES)) \
$(subst /,_,$(CXXFILES)) \
$(subst /,_,$(MFILES)) \
$(subst /,_,$(RCFILES))
OFILES := $(OFILES:%=$(OBJDIR)/%.o)
OUT = $(OUTDIR)/$(NAME)$(SUFFIX)
OUTNOSONAME = $(OUTDIR)/$(NAME)$(LIBSUFFIX)
# TODO allow using LD
# LD is defined by default so we need a way to override the default define without blocking a user define
ifeq ($(CXXFILES),)
reallinker = $(CC)
else
reallinker = $(CXX)
endif
include $(OS)/GNUosspecificlink.mk
.SECONDEXPANSION:
$(OBJDIR)/%.c.o: $$(subst _,/,%).c $(HFILES) | $(OBJDIR)
@$(CC) -o $@ -c $< $(CFLAGS)
@echo ====== Compiled $<
$(OBJDIR)/%.cpp.o: $$(subst _,/,%).cpp $(HFILES) | $(OBJDIR)
@$(CXX) -o $@ -c $< $(CXXFLAGS)
@echo ====== Compiled $<
$(OBJDIR)/%.m.o: $$(subst _,/,%).m $(HFILES) | $(OBJDIR)
@$(CC) -o $@ -c $< $(CFLAGS)
@echo ====== Compiled $<
$(OBJDIR)/%.rc.o: $$(subst _,/,%).rc $(HFILES) | $(OBJDIR)
@$(RC) $(RCFLAGS) $< $@
@echo ====== Compiled $<
$(OBJDIR) $(OUTDIR):
@mkdir -p $@

View File

@ -1,62 +0,0 @@
# 16 october 2015
ifndef inlibuibuild
$(error Do not run these makefiles directly.)
endif
ifndef EXAMPLE
$(error You must specify an example to build by adding EXAMPLE=name to the command line.)
endif
include $(OS)/GNUosspecific.mk
ifneq ($(findstring cpp-,$(EXAMPLE)),)
CXXFILES += \
examples/$(EXAMPLE)/main.cpp
else
CFILES += \
examples/$(EXAMPLE)/main.c
endif
HFILES += \
ui.h
ifeq ($(OS),windows)
RCFILES += \
examples/resources.rc
ifneq (,$(STATIC))
RCFLAGS += -D _UI_STATIC
endif
endif
NAME = $(EXAMPLE)
SUFFIX = $(EXESUFFIX)
# TODO merge with the one in build/GNUmakefile.test
ifeq ($(TOOLCHAIN),gcc)
ifeq (,$(STATIC))
LDFLAGS += -L$(OUTDIR) -lui
else
LDFLAGS += -L$(OUTDIR) -lui $(NATIVE_UI_LDFLAGS)
endif
# see build/GNUmakefile.test
ifeq ($(OS),darwin)
LDFLAGS += -Wl,-rpath,@executable_path/
else
LDFLAGS += -Wl,-rpath,'$$ORIGIN'
endif
ifneq ($(findstring cpp-,$(EXAMPLE)),)
LDFLAGS += -pthread
endif
else
ifeq (,$(STATIC))
# TODO is there an equivalent to -L?
LDFLAGS += $(OUTDIR)/libui.lib
else
LDFLAGS += $(OUTDIR)/libui.lib $(OUTDIR)/libui.res $(OUTDIR)/$(NAME).res $(NATIVE_UI_LDFLAGS)
endif
endif
# executables are not shared libraries
USESSONAME = 0
include build/GNUbase$(TOOLCHAIN).mk

View File

@ -1,50 +0,0 @@
# 16 october 2015
ifndef inlibuibuild
$(error Do not run these makefiles directly.)
endif
# for GCC
SOVERSION0 = 0
SOVERSIONA = A
include $(OS)/GNUosspecific.mk
include common/GNUfiles.mk
include $(OS)/GNUfiles.mk
HFILES += \
ui.h \
ui_$(OS)$(OSHSUFFIX)
NAME = libui
ifeq (,$(STATIC))
SUFFIX = $(LIBSUFFIX)
ifeq ($(USESSONAME),1)
SUFFIX = $(SONAMEEXT)
endif
else
SUFFIX = $(STATICLIBSUFFIX)
endif
ifeq ($(TOOLCHAIN),gcc)
LDFLAGS += \
-fvisibility=hidden
else
# TODO autogenerate a .def file?
endif
ifeq ($(RELEASE),1)
CFLAGS += -D_UI_RELEASE
CXXFLAGS += -D_UI_RELEASE
endif
ifeq ($(USESSONAME),1)
LDFLAGS += $(SONAMEFLAG)$(NAME)$(SUFFIX)
endif
include build/GNUbase$(TOOLCHAIN).mk
# install rule is OS specific
# TODO probably better off making it a toolchain-wide rule
include $(OS)/GNUinstall.mk

View File

@ -1,49 +0,0 @@
# 16 october 2015
ifndef inlibuibuild
$(error Do not run these makefiles directly.)
endif
include $(OS)/GNUosspecific.mk
include test/GNUfiles.mk
HFILES += \
ui.h
NAME = test
SUFFIX = $(EXESUFFIX)
ifeq ($(OS),windows)
ifneq (,$(STATIC))
RCFLAGS += -D _UI_STATIC
endif
endif
ifeq ($(TOOLCHAIN),gcc)
ifeq (,$(STATIC))
LDFLAGS += -L$(OUTDIR) -lui
else
LDFLAGS += -L$(OUTDIR) -lui $(NATIVE_UI_LDFLAGS)
endif
# tell the dynamic loader to search in the executable path for shared objects
# note: OS X's linker complains if we say -rpath= instead of -rpath,
# also note that OS X doesn't use $ORIGIN - see http://jorgen.tjer.no/post/2014/05/20/dt-rpath-ld-and-at-rpath-dyld/
# the extra slash is needed on OS X 10.7; have it around just to be correct
ifeq ($(OS),darwin)
LDFLAGS += -Wl,-rpath,@executable_path/
else
LDFLAGS += -Wl,-rpath,'$$ORIGIN'
endif
else
ifeq (,$(STATIC))
# TODO is there an equivalent to -L?
LDFLAGS += $(OUTDIR)/libui.lib
else
LDFLAGS += $(OUTDIR)/libui.lib $(OUTDIR)/libui.res $(OUTDIR)/$(NAME).res $(NATIVE_UI_LDFLAGS)
endif
endif
# executables are not shared libraries
USESSONAME = 0
include build/GNUbase$(TOOLCHAIN).mk

View File

@ -1,4 +0,0 @@
# on warning about undefined symbols:
# the gcc flags don't work with Apple's linker
# fortunately, we don't need any; Apple's linker warns about undefined symbols in -shared builds!

View File

@ -1,63 +0,0 @@
# 22 april 2015
CFILES += \
unix/alloc.c \
unix/area.c \
unix/box.c \
unix/button.c \
unix/checkbox.c \
unix/child.c \
unix/colorbutton.c \
unix/combobox.c \
unix/control.c \
unix/datetimepicker.c \
unix/debug.c \
unix/draw.c \
unix/drawmatrix.c \
unix/drawpath.c \
unix/drawtext.c \
unix/editablecombo.c \
unix/entry.c \
unix/fontbutton.c \
unix/graphemes.c \
unix/group.c \
unix/label.c \
unix/main.c \
unix/menu.c \
unix/multilineentry.c \
unix/progressbar.c \
unix/radiobuttons.c \
unix/separator.c \
unix/slider.c \
unix/spinbox.c \
unix/stddialogs.c \
unix/tab.c \
unix/text.c \
unix/util.c \
unix/window.c
HFILES += \
unix/draw.h \
unix/uipriv_unix.h
# LONGTERM split into a separate file or put in GNUmakefile.libui somehow?
# flags for GTK+
CFLAGS += $(NATIVE_UI_CFLAGS)
CXXFLAGS += $(NATIVE_UI_CXXFLAGS)
LDFLAGS += $(NATIVE_UI_LDFLAGS)
# flags for building a shared library
# OS X does support -shared but it has a preferred name for this so let's use that there instead; hence this is not gcc-global
ifeq (,$(STATIC))
LDFLAGS += \
-shared
endif
# flags for warning on undefined symbols
# this is not gcc-global because OS X doesn't support these flags
# TODO figure out why FreeBSD follows linked libraries here
ifneq ($(shell uname -s),FreeBSD)
LDFLAGS += \
-Wl,--no-undefined -Wl,--no-allow-shlib-undefined
endif