Pruned out and merged in th erest of the migrate_build files.
This commit is contained in:
parent
0bca3e21da
commit
acbeb86c7f
|
@ -138,7 +138,7 @@ if(BUILD_SHARED_LIBS)
|
||||||
endif()
|
endif()
|
||||||
if(NOT BUILD_SHARED_LIBS)
|
if(NOT BUILD_SHARED_LIBS)
|
||||||
_handle_static()
|
_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}
|
target_compile_definitions(${_LIBUINAME}
|
||||||
PUBLIC _UI_STATIC)
|
PUBLIC _UI_STATIC)
|
||||||
endif()
|
endif()
|
||||||
|
@ -147,6 +147,20 @@ if(NOT MSVC)
|
||||||
# note that we apply this to libui, not to any intermediates
|
# note that we apply this to libui, not to any intermediates
|
||||||
set_target_properties(libui PROPERTIES
|
set_target_properties(libui PROPERTIES
|
||||||
OUTPUT_NAME ui)
|
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()
|
endif()
|
||||||
if(BUILD_SHARED_LIBS)
|
if(BUILD_SHARED_LIBS)
|
||||||
if(_HASVERSION)
|
if(_HASVERSION)
|
||||||
|
|
|
@ -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 $@
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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
|
|
|
@ -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!
|
|
|
@ -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
|
|
Loading…
Reference in New Issue