Update the basic Makefile

This commit is contained in:
Edouard Dupin 2012-03-29 17:48:59 +02:00
parent 011dd96f77
commit 979c103743
13 changed files with 199 additions and 400 deletions

View File

@ -1,61 +1,61 @@
include $(EWOL_FOLDER)/Build/Makefile.common.mk
PROJECT_PACKAGE=$(PROJECT_NAME)package
JAVA_FOLDER=src/com/$(PROJECT_VENDOR)/$(PROJECT_NAME)
all:
@echo $(CADRE_HAUT_BAS)
@echo $(CADRE_COTERS)
@echo ' DEBUT DE COMPILATION DU PROGRAMME :'$(CADRE_COTERS)
@echo ' Project name : $(F_BLUE)$(PROJECT_NAME)$(F_NORMALE)'$(CADRE_COTERS)
@echo ' Project Vendor : $(F_CYAN)$(PROJECT_VENDOR)$(F_NORMALE)'$(CADRE_COTERS)
@echo ' Build date : $(F_ROUGE)$(BUILD_TIME) $(F_NORMALE)'$(CADRE_COTERS)
@echo ' Tag : $(F_VIOLET)$(PROJECT_VERSION_TAG) $(F_NORMALE)'$(CADRE_COTERS)
@echo $(CADRE_COTERS)
@echo $(CADRE_HAUT_BAS)
@echo "------------------------------------------------------------------------"
@echo ' Project name : $(PROJECT_NAME)'
@echo ' Project Vendor : $(PROJECT_VENDOR)'
@echo ' Build date : $(BUILD_TIME) '
@echo ' Tag : $(PROJECT_VERSION_TAG) '
@echo "------------------------------------------------------------------------"
@rm -rf bin
@echo $(F_ROUGE)" (sh) Clear previous sources "$(F_NORMALE)
@echo " (sh) Clear previous sources "
@rm -rf src jni/ewolAndroidAbstraction.cpp
@echo $(F_ROUGE)" (sh) Create folder : $(JAVA_FOLDER)/ "$(F_NORMALE)
@echo " (sh) Create folder : $(JAVA_FOLDER)/ "
@mkdir -p $(JAVA_FOLDER)/
@echo $(F_ROUGE)" (sh) copy the java File : "$(F_NORMALE)
@echo " (sh) copy the java File : "
@cp $(EWOL_FOLDER)/Java/PROJECT_NAME.java $(JAVA_FOLDER)/$(PROJECT_NAME).java
@echo $(F_ROUGE)" (sh) Replace __PROJECT_VENDOR__, __PROJECT_NAME__ and __PROJECT_PACKAGE__ with the correct intance "$(F_NORMALE)
@echo " (sh) Replace __PROJECT_VENDOR__, __PROJECT_NAME__ and __PROJECT_PACKAGE__ with the correct intance "
@sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java
@sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java
@sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" $(JAVA_FOLDER)/$(PROJECT_NAME).java
@echo $(F_ROUGE)" (sh) copy the cpp for jni File : $(EWOL_FOLDER)/SourcesJava/ewolAndroidAbstraction.cpp"$(F_NORMALE)
@echo " (sh) copy the cpp for jni File : $(EWOL_FOLDER)/SourcesJava/ewolAndroidAbstraction.cpp"
@cp $(EWOL_FOLDER)/Java/ewolAndroidAbstraction.cpp jni/
@echo $(F_ROUGE)" (sh) Replace __PROJECT_VENDOR__, __PROJECT_NAME__ and __PROJECT_PACKAGE__ with the correct intance "$(F_NORMALE)
@echo " (sh) Replace __PROJECT_VENDOR__, __PROJECT_NAME__ and __PROJECT_PACKAGE__ with the correct intance "
@sed -i "s|__PROJECT_VENDOR__|$(PROJECT_VENDOR)|" jni/ewolAndroidAbstraction.cpp
@sed -i "s|__PROJECT_NAME__|$(PROJECT_NAME)|" jni/ewolAndroidAbstraction.cpp
@sed -i "s|__PROJECT_PACKAGE__|$(PROJECT_PACKAGE)|" jni/ewolAndroidAbstraction.cpp
@echo $(F_ROUGE)" (ndk-build) build native code"$(F_NORMALE)
@echo " (ndk-build) build native code"
cd $(PROJECT_NDK) ; NDK_PROJECT_PATH=$(PROJECT_PATH) NDK_MODULE_PATH=$(PROJECT_MODULE) ./ndk-build
@echo $(F_ROUGE)" (ant) build java code"$(F_NORMALE)
@echo " (ant) build java code"
PATH=$(PROJECT_SDK)/tools/:$(PROJECT_SDK)/platform-tools/:$(PATH) ant -Dsdk.dir=$(PROJECT_SDK) debug
@echo $(F_ROUGE)" (sh) Clear previous sources "$(F_NORMALE)
@echo " (sh) Clear previous sources "
@rm -rf src jni/ewolAndroidAbstraction.cpp
install: all
@echo $(CADRE_HAUT_BAS)
@echo ' INSTALL : $(F_VIOLET)./bin/$(PROJECT_NAME)-debug.apk$(F_NORMALE)'$(CADRE_COTERS)
@echo $(CADRE_HAUT_BAS)
@echo "------------------------------------------------------------------------"
@echo ' INSTALL : ./bin/$(PROJECT_NAME)-debug.apk'
@echo "------------------------------------------------------------------------"
@# $(PROJECT_SDK)/platform-tools/adb kill-server
@# install application
$(PROJECT_SDK)/platform-tools/adb install -r ./bin/$(PROJECT_NAME)-debug.apk
clean:
@echo $(CADRE_HAUT_BAS)
@echo ' CLEANING : bin libs gen obj'$(CADRE_COTERS)
@echo $(CADRE_HAUT_BAS)
@echo "------------------------------------------------------------------------"
@echo ' CLEANING : bin libs gen obj'
@echo "------------------------------------------------------------------------"
cd $(PROJECT_NDK) ; NDK_PROJECT_PATH=$(PROJECT_PATH) NDK_MODULE_PATH=$(PROJECT_MODULE) ./ndk-build clean
localclean:
@echo "------------------------------------------------------------------------"
@echo ' Remove : bin libs gen obj'
@echo "------------------------------------------------------------------------"
rm -rf bin libs gen obj

View File

@ -1,39 +1,35 @@
include $(EWOL_FOLDER)/Build/coreLinux/main.mk
#include $(EWOL_FOLDER)/Build/Makefile.common.mk
#all:
# @echo $(CADRE_HAUT_BAS)
# @echo $(CADRE_COTERS)
# @echo ' DEBUT DE COMPILATION DU PROGRAMME :'$(CADRE_COTERS)
# @echo ' Project name : $(F_BLUE)$(PROJECT_NAME)$(F_NORMALE)'$(CADRE_COTERS)
# @echo ' Project Vendor : $(F_CYAN)$(PROJECT_VENDOR)$(F_NORMALE)'$(CADRE_COTERS)
# @echo ' Build date : $(F_ROUGE)$(BUILD_TIME) $(F_NORMALE)'$(CADRE_COTERS)
# @echo ' Tag : $(F_VIOLET)$(PROJECT_VERSION_TAG) $(F_NORMALE)'$(CADRE_COTERS)
# @echo $(CADRE_COTERS)
# @echo $(CADRE_HAUT_BAS)
#
# @echo $(F_ROUGE)" (ndk-build) build native code"$(F_NORMALE)
# cd $(PROJECT_NDK) ; NDK_PROJECT_PATH=$(PROJECT_PATH) NDK_MODULE_PATH=$(PROJECT_MODULE) ./ndk-build
# #cd $(PROJECT_NDK) ; NDK_PROJECT_PATH=$(PROJECT_PATH) NDK_MODULE_PATH=$(PROJECT_MODULE) NDK_LOG=~/.ndklog.txt make -f $(EWOL_FOLDER)/Build/coreLinux/build-local.mk
#install: all
# @echo $(CADRE_HAUT_BAS)
# @echo ' INSTALL : $(F_VIOLET)./bin/$(PROJECT_NAME)-debug.apk$(F_NORMALE)'$(CADRE_COTERS)
# @echo $(CADRE_HAUT_BAS)
# # TODO : Later ....
#clean:
# @echo $(CADRE_HAUT_BAS)
# @echo ' CLEANING : bin libs gen obj'$(CADRE_COTERS)
# @echo $(CADRE_HAUT_BAS)
# # TODO : Later ....
# http://alp.developpez.com/tutoriels/debian/creer-paquet/
#package: .encadrer
# @echo 'Create Folders ...'
# @mkdir -p package/$(PROJECT_NAME)/DEBIAN/
# @mkdir -p package/$(PROJECT_NAME)/usr/bin/
# @mkdir -p package/$(PROJECT_NAME)/usr/share/doc/
# @mkdir -p package/$(PROJECT_NAME)/usr/share/edn/
# # Create the control file
# @echo "Package: "$(PROJECT_NAME) > package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Version: "$(VERSION_TAG_SHORT) >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Section: Development,Editors" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Priority: optional" >>package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Architecture: all" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Depends: bash" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Maintainer: Mr DUPIN Edouard <yui.heero@gmail.com>" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "Description: Text editor for sources code with ctags management" >> package/$(PROJECT_NAME)/DEBIAN/control
# @echo "" >> package/$(PROJECT_NAME)/DEBIAN/control
# # Create the PostRm
# @echo "#!/bin/bash" > package/$(PROJECT_NAME)/DEBIAN/postrm
# @echo "rm ~/."$(PROJECT_NAME) >> package/$(PROJECT_NAME)/DEBIAN/postrm
# @echo "" >> package/$(PROJECT_NAME)/DEBIAN/postrm
# # Enable Execution in script
# @chmod 755 package/$(PROJECT_NAME)/DEBIAN/post*
# @#chmod 755 package/$(PROJECT_NAME)/DEBIAN/pre*
# # copy licence and information :
# @cp README package/$(PROJECT_NAME)/usr/share/doc/README
# @cp licence.txt package/$(PROJECT_NAME)/usr/share/doc/copyright
# @echo "First generation in progress" >> package/$(PROJECT_NAME)/usr/share/doc/changelog
# @cp -vf $(PROJECT_NAME) package/$(PROJECT_NAME)/usr/bin/
# @cp -vf data/*.xml package/$(PROJECT_NAME)/usr/share/edn/
# @cd package; dpkg-deb --build $(PROJECT_NAME)

View File

@ -1,194 +0,0 @@
include $(EWOL_FOLDER)/Build/Makefile.common.mk
#include $(EWOL_FOLDER)/Build/ewol.mk
###############################################################################
### Compilateur base system ###
###############################################################################
CXX=g++
CC=gcc
AR=ar
X11FLAGS= -lGL -lGLU
# some X11 mode availlable :
# install package : libxxf86vm-dev
X11FLAGS+= -lX11 -DEWOL_X11_MODE__XF86V -lXxf86vm
# install package : libxrender-dev
#X11FLAGS+= -lX11 -DEWOL_X11_MODE__XRENDER -lXrandr
ifeq ($(shell if `pkg-config --exists freetype2` ; then echo "yes"; else echo "no"; fi), yes)
FREETYPE_CFLAGS= `pkg-config --cflags freetype2` -DEWOL_USE_FREE_TYPE
FREETYPE_LDFLAGS= `pkg-config --libs freetype2` -DEWOL_USE_FREE_TYPE
else
FREETYPE_CFLAGS=
FREETYPE_LDFLAGS=
$(Info libFreeType-dev is not installed)
endif
OBJECT_DIR=Object_$(PLATFORM)
ifeq ("$(DEBUG)", "0")
OBJECT_DIRECTORY=$(OBJECT_DIR)/release
OUTPUT_NAME = $(OUTPUT_NAME_RELEASE)
else
OBJECT_DIRECTORY=$(OBJECT_DIR)/debug
OUTPUT_NAME = $(OUTPUT_NAME_DEBUG)
endif
###############################################################################
### Basic C flags ###
###############################################################################
# basic X11 librairy ==> show if we can une under lib ...
CXXFLAGS= $(X11FLAGS) $(FREETYPE_CFLAGS) -D__PLATFORM__$(PLATFORM) $(PROJECT_CXXFLAGS)
ifeq ("$(DEBUG)", "0")
CXXFLAGS+= -O2
else
# Enable debug (cgdb ***)
CXXFLAGS+= -g -O0
endif
# display all flags
CXXFLAGS+= -Wall
# ...
CXXFLAGS+= -D_REENTRANT
# internal defines
CXXFLAGS+= $(DEFINE)
# remove warning from the convertion char*
CXXFLAGS+= -Wno-write-strings
CXXFLAGS+= -DPROJECT_NAME="$(PROJECT_NAME)"
CFLAGS= $(CXXFLAGS) -std=c99
# basic extern librairy
LDFLAGS= $(X11FLAGS) $(FREETYPE_LDFLAGS) $(PROJECT_LDFLAGS)
# Dynamic connection of the CALLBACK of the GUI
LDFLAGS+= -Wl,--export-dynamic
# TODO : add the prefix ...
CXXFILES = $(PROJECT_SOURCES)
# create the list of module :
LISTE_MODULES = $(sort $(dir $(CXXFILES)))
###############################################################################
### Build Object Files List ###
###############################################################################
OBJ = $(addprefix $(OBJECT_DIRECTORY)/, $(CXXFILES:.cpp=.o))
###############################################################################
### Main Part of Makefile ###
###############################################################################
all: $(PROJECT_NAME)
-include $(OBJ:.o=.d)
.ewol:
@cd $(EWOL_FOLDER) ; make -s PLATFORM=$(PLATFORM) DEBUG=$(DEBUG)
.ewol-clean:
@cd $(EWOL_FOLDER) ; make -s PLATFORM=$(PLATFORM) clean
.encadrer:
@echo $(CADRE_HAUT_BAS)
@echo $(CADRE_COTERS)
@echo ' DEBUT DE COMPILATION DU PROGRAMME :'$(CADRE_COTERS)
@echo ' Repertoire Sources : $(PROJECT_FILE_DIRECTORY)/'$(CADRE_COTERS)
@echo ' Repertoire object : $(OBJECT_DIRECTORY)/'$(CADRE_COTERS)
@echo ' Binaire de sortie : $(F_VIOLET)$(PROJECT_NAME) $(F_NORMALE)'$(CADRE_COTERS)
@echo $(CADRE_COTERS)
@echo $(CADRE_HAUT_BAS)
@mkdir -p $(addprefix $(OBJECT_DIRECTORY)/, $(LISTE_MODULES))
$(info PROJECT_FILE_DIRECTORY=$(PROJECT_FILE_DIRECTORY) ; OBJECT_DIRECTORY=$(OBJECT_DIRECTORY))
# build C++
$(OBJECT_DIRECTORY)/%.o: $(PROJECT_FILE_DIRECTORY)/%.cpp $(MAKE_DEPENDENCE)
@echo $(F_VERT)" (.o) $<"$(F_NORMALE)
@$(CXX) $< -c -o $@ $(INCLUDE_DIRECTORY) $(CXXFLAGS) -MMD
# build binary Release Mode
$(PROJECT_NAME): .ewol .encadrer $(PROJECT_LIB_DEPENDENCY) $(OBJ) $(MAKE_DEPENDENCE)
@echo $(F_ROUGE)" (bin) $(PROJECT_NAME) "$(F_NORMALE)
@$(CXX) $(OBJ) $(EWOL_FOLDER)/libewol.a $(LDFLAGS) -o $@
clean: .ewol-clean
@echo $(CADRE_HAUT_BAS)
@echo ' CLEANING : $(F_VIOLET)$(OUTPUT_NAME)$(F_NORMALE)'$(CADRE_COTERS)
@echo $(CADRE_HAUT_BAS)
@echo $(F_VERT)" (rm) $(OBJECT_DIR)"$(F_NORMALE)
@rm -rf $(OBJECT_DIR)
@echo $(F_VERT)" (rm) $(PROJECT_NAME) $(OUTPUT_NAME_DEBUG) $(OUTPUT_NAME_RELEASE)"$(F_NORMALE)
@rm -f $(PROJECT_NAME) $(OUTPUT_NAME_DEBUG) $(OUTPUT_NAME_RELEASE)
@echo $(F_VERT)" (rm) doxygen/*"$(F_NORMALE)
@rm -rf doxygen
@rm -f doxygen.log
@echo $(F_VERT)" (rm) *.bck"$(F_NORMALE)
@rm -f `find . -name "*.bck"`
count:
wc -l Makefile `find $(FILE_DIRECTORY)/ -name "*.cpp"` `find $(PROJECT_FILE_DIRECTORY)/ -name "*.h"`
install: .encadrer .versionFile $(PROJECT_NAME)
@echo ' INSTALL : $(OUTPUT_NAME_RELEASE)=>$(PROJECT_NAME)'
@echo " (stripped) $(OUTPUT_NAME_RELEASE) => $(PROJECT_NAME) "
@cp $(OUTPUT_NAME_RELEASE) $(PROJECT_NAME)
@strip -s $(PROJECT_NAME)
@echo " (copy) $(PROJECT_NAME) /usr/bin/ "
@cp -vf $(PROJECT_NAME) /usr/bin/
@echo " (data) data/* ==> /usr/share/$(PROJECT_NAME)/ "
@mkdir -p /usr/share/$(PROJECT_NAME)/
@rm -rf /usr/share/$(PROJECT_NAME)/*
@cp -vf assets/* /usr/share/$(PROJECT_NAME)/
# http://alp.developpez.com/tutoriels/debian/creer-paquet/
package: .encadrer
@echo 'Create Folders ...'
@mkdir -p package/$(PROJECT_NAME)/DEBIAN/
@mkdir -p package/$(PROJECT_NAME)/usr/bin/
@mkdir -p package/$(PROJECT_NAME)/usr/share/doc/
@mkdir -p package/$(PROJECT_NAME)/usr/share/edn/
# Create the control file
@echo "Package: "$(PROJECT_NAME) > package/$(PROJECT_NAME)/DEBIAN/control
@echo "Version: "$(VERSION_TAG_SHORT) >> package/$(PROJECT_NAME)/DEBIAN/control
@echo "Section: Development,Editors" >> package/$(PROJECT_NAME)/DEBIAN/control
@echo "Priority: optional" >>package/$(PROJECT_NAME)/DEBIAN/control
@echo "Architecture: all" >> package/$(PROJECT_NAME)/DEBIAN/control
@echo "Depends: bash" >> package/$(PROJECT_NAME)/DEBIAN/control
@echo "Maintainer: Mr DUPIN Edouard <yui.heero@gmail.com>" >> package/$(PROJECT_NAME)/DEBIAN/control
@echo "Description: Text editor for sources code with ctags management" >> package/$(PROJECT_NAME)/DEBIAN/control
@echo "" >> package/$(PROJECT_NAME)/DEBIAN/control
# Create the PostRm
@echo "#!/bin/bash" > package/$(PROJECT_NAME)/DEBIAN/postrm
@echo "rm ~/."$(PROJECT_NAME) >> package/$(PROJECT_NAME)/DEBIAN/postrm
@echo "" >> package/$(PROJECT_NAME)/DEBIAN/postrm
# Enable Execution in script
@chmod 755 package/$(PROJECT_NAME)/DEBIAN/post*
@#chmod 755 package/$(PROJECT_NAME)/DEBIAN/pre*
# copy licence and information :
@cp README package/$(PROJECT_NAME)/usr/share/doc/README
@cp licence.txt package/$(PROJECT_NAME)/usr/share/doc/copyright
@echo "First generation in progress" >> package/$(PROJECT_NAME)/usr/share/doc/changelog
@cp -vf $(PROJECT_NAME) package/$(PROJECT_NAME)/usr/bin/
@cp -vf data/*.xml package/$(PROJECT_NAME)/usr/share/edn/
@cd package; dpkg-deb --build $(PROJECT_NAME)

View File

@ -1,56 +0,0 @@
##################################################################################################################
# #
# Fichier : Makefile.common #
# #
# Type : common part of the ewol Makefile #
# #
# Auteur : Heero Yui #
# #
# Evolutions : Date Auteur Raison #
# 2011-12-15 Heero Yui Mise en place du système de couleur et d'encart #
# #
##################################################################################################################
export F_GRAS=
export F_INVERSER=
export F_SOUSLIGNER=
export F_NORMALE=
export F_NOIR=
export F_ROUGE=
export F_VERT=
export F_MARRON=
export F_BLUE=
export F_VIOLET=
export F_CYAN=
export F_GRIS=
export CADRE_HAUT_BAS=' $(F_INVERSER) $(F_NORMALE)'
export CADRE_COTERS=' $(F_INVERSER) $(F_NORMALE) $(F_INVERSER) $(F_NORMALE)'
###############################################################################
### Platform specificity : ###
###############################################################################
SUPPORTED_PLATFORM=Linux IMac IPhone IPad Android AndroidTablet
DEFAULT_PLATFORM=Linux
# default platform can be overridden
PLATFORM?=$(DEFAULT_PLATFORM)
ifeq ($(PLATFORM), Linux)
CXXFILES += base/guiX11.cpp
else ifeq ($(PLATFORM), IMac)
CXXFILES += base/guiIMac.cpp
else ifeq ($(PLATFORM), IPhone)
CXXFILES += base/guiIPhone.cpp
else ifeq ($(PLATFORM), IPad)
CXXFILES += base/guiIPad.cpp
else ifeq ($(PLATFORM), Android)
CXXFILES += base/guiAndroid.cpp
else ifeq ($(PLATFORM), AndroidTablet)
CXXFILES += base/guiAndroidTablet.cpp
else
$(error you must specify a corect platform : make PLATFORM=$(SUPPORTED_PLATFORM))
endif
BUILD_TIME=$(shell date)

33
Build/Makefile.mk Normal file
View File

@ -0,0 +1,33 @@
###############################################################################
### Platform specificity : ###
###############################################################################
SUPPORTED_PLATFORM=Linux IMac IOs Android
DEFAULT_PLATFORM=Linux
# default platform can be overridden
PLATFORM?=$(DEFAULT_PLATFORM)
PROJECT_PATH=$(shell pwd)
PROJECT_MODULE=$(PROJECT_PATH)/../
ifeq ($(PLATFORM), Linux)
PROJECT_NDK?=$(realpath $(PROJECT_MODULE)/ewol/)
else ifeq ($(PLATFORM), IMac)
else ifeq ($(PLATFORM), IOs)
else ifeq ($(PLATFORM), Android)
PROJECT_NDK?=$(realpath $(PROJECT_MODULE)/android/ndk/)
PROJECT_SDK?=$(realpath $(PROJECT_MODULE)/android/sdk/)
else
$(error you must specify a corect platform : make PLATFORM=$(SUPPORTED_PLATFORM))
endif
# get the compilation date and time :
BUILD_TIME=$(shell date)
EWOL_FOLDER?=$(realpath $(PROJECT_MODULE)/ewol)
include $(EWOL_FOLDER)/Build/Makefile.$(PLATFORM).mk

View File

@ -1,79 +0,0 @@
EWOL_VERSION_TAG=$(shell cd $(EWOL_FOLDER); git describe --tags)
#$(info $(VERSION_TAG))
EWOL_VERSION_TAG_SHORT=$(shell cd $(EWOL_FOLDER); git describe --tags --abbrev=0)
#$(info $(VERSION_TAG_SHORT))
###############################################################################
### Compilation Define ###
###############################################################################
ifeq ("$(DEBUG)", "0")
EWOL_CXXFLAGS = -DETK_DEBUG_LEVEL=1
EWOL_CXXFLAGS+= -DEWOL_DEBUG_LEVEL=1
EWOL_CXXFLAGS+= -DNDEBUG
EWOL_CXXFLAGS+= -DEWOL_VERSION_TAG_NAME="\"$(EWOL_VERSION_TAG)-release\""
else
EWOL_CXXFLAGS = -DETK_DEBUG_LEVEL=3
EWOL_CXXFLAGS+= -DEWOL_DEBUG_LEVEL=3
EWOL_CXXFLAGS+= -DEWOL_VERSION_TAG_NAME="\"$(EWOL_VERSION_TAG)-debug\""
endif
EWOL_CXXFLAGS+= -DVERSION_BUILD_TIME="\"$(BUILD_TIME)\""
# tiny XML (extern OPEN Sources) :
EWOL_CXXFILES += tinyXML/tinyxml.cpp \
tinyXML/tinyxmlparser.cpp \
tinyXML/tinyxmlerror.cpp \
tinyXML/tinystr.cpp
# Ewol Tool Kit :
EWOL_CXXFILES += etk/Debug.cpp \
etk/DebugInternal.cpp \
etk/Memory.cpp \
etk/String.cpp \
etk/Stream.cpp \
etk/File.cpp \
etk/RegExp.cpp
# Ewol Sources :
EWOL_CXXFILES += ewol/ewol.cpp \
ewol/Debug.cpp \
ewol/OObject.cpp \
ewol/OObject/2DText.cpp \
ewol/OObject/2DColored.cpp \
ewol/OObject/2DTextured.cpp \
ewol/Texture.cpp
ifeq ("$(FREETYPE_CFLAGS)", "")
EWOL_CXXFILES += ewol/FontBitmap.cpp
else
EWOL_CXXFILES += ewol/FontFreeType.cpp
endif
EWOL_CXXFILES += ewol/Widget.cpp \
ewol/WidgetManager.cpp \
ewol/Windows.cpp
# list of widgets :
EWOL_CXXFILES += ewol/widget/Button.cpp \
ewol/widget/CheckBox.cpp \
ewol/widget/Entry.cpp \
ewol/widget/List.cpp \
ewol/widget/SizerHori.cpp \
ewol/widget/SizerVert.cpp
# only to test son internal element ...
EWOL_CXXFILES += ewol/widget/Test.cpp
# theme management :
EWOL_CXXFILES += ewol/themeManager.cpp \
ewol/theme/Theme.cpp \
ewol/theme/EolElement.cpp \
ewol/theme/EolElementFrame.cpp \
ewol/theme/EolColor.cpp \
ewol/theme/EolBase.cpp \
ewol/theme/EolBaseCircle.cpp \
ewol/theme/EolBaseCirclePart.cpp \
ewol/theme/EolBaseLine.cpp \
ewol/theme/EolBasePolygone.cpp \
ewol/theme/EolBaseRect.cpp \
ewol/theme/EolBaseTriangle.cpp

View File

@ -2,7 +2,15 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# name of the librairy
LOCAL_MODULE := ewol
# get the tag of the current project :
LOCAL_VERSION_TAG=$(shell cd $(LOCAL_PATH) ; git describe --tags)
LOCAL_VERSION_TAG_SHORT=$(shell cd $(LOCAL_PATH) ; git describe --tags --abbrev=0)
$(info $(LOCAL_MODULE) version TAG : $(LOCAL_VERSION_TAG))
# name of the dependency
LOCAL_STATIC_LIBRARIES := etk libfreetype tinyxml libzip libpng agg parsersvg
LOCAL_C_INCLUDES := -I$(LOCAL_PATH)
@ -15,7 +23,7 @@ LOCAL_CFLAGS := -D__PLATFORM__Linux \
-Wno-write-strings \
-DETK_DEBUG_LEVEL=3 \
-DEWOL_DEBUG_LEVEL=3 \
-DEWOL_VERSION_TAG_NAME="\"UNKNOW-debug\"" \
-DEWOL_VERSION_TAG_NAME="\"$(LOCAL_VERSION_TAG_SHORT)-debug\"" \
-DVERSION_BUILD_TIME="\"pasd_heure\"" \
-DEWOL_USE_FREE_TYPE \
-Wall
@ -25,7 +33,7 @@ LOCAL_CFLAGS := -D__PLATFORM__Linux \
-Wno-write-strings \
-DETK_DEBUG_LEVEL=1 \
-DEWOL_DEBUG_LEVEL=1 \
-DEWOL_VERSION_TAG_NAME="\"UNKNOW-debug\"" \
-DEWOL_VERSION_TAG_NAME="\"$(LOCAL_VERSION_TAG_SHORT)-debug\"" \
-DVERSION_BUILD_TIME="\"pasd_heure\"" \
-DEWOL_USE_FREE_TYPE

View File

@ -221,6 +221,10 @@ uint8_t * ewol::texture::TextureBMP::Data(void)
{
return m_dataGenerate;
};
uint8_t * ewol::texture::TextureBMP::RawData(void)
{
return m_data;
};
uint32_t ewol::texture::TextureBMP::DataSize(void)
{

View File

@ -83,6 +83,7 @@ namespace ewol
int32_t Width(void);
int32_t Height(void);
uint8_t * Data(void);
uint8_t * RawData(void);
uint32_t DataSize(void);
void Display(void);
};

View File

@ -186,6 +186,11 @@ void EWOL_NativeRender(void)
void ewol::SetTitle(etk::UString title)
{
// can not set the title in Android ...
}
#undef __class__
#define __class__ "guiAbstraction"

View File

@ -24,12 +24,14 @@
#include <ewol/Debug.h>
#include <ewol/ewol.h>
#include <etk/UString.h>
#include <etk/unicode.h>
#include <ewol/WidgetManager.h>
#include <ewol/base/gui.h>
#include <ewol/Texture.h>
#include <ewol/Texture/TextureBMP.h>
#include <ewol/base/MainThread.h>
#include <unistd.h>
@ -134,9 +136,8 @@ bool CreateX11Context(void)
XWMHints *StartupState;
XTextProperty textprop;
XSetWindowAttributes attr;
static char *title = (char*)"APPLICATION Title ... (todo)";
EWOL_INFO("X11 Mode XF86 Video");
// basic title of the windows ...
static char *title = (char*)"Ewol";
// Connect to the X server
m_display = XOpenDisplay(NULL);
@ -246,6 +247,80 @@ bool CreateX11Context(void)
return true;
}
void ewol::SetTitle(etk::UString title)
{
XTextProperty tp;
tp.value = (unsigned char *)title.Utf8Data();
tp.encoding = XA_WM_NAME;
tp.format = 8;
tp.nitems = strlen((const char*)tp.value);
XSetWMName(m_display, WindowHandle, &tp);
XStoreName(m_display, WindowHandle, (const char*)tp.value);
XSetIconName(m_display, WindowHandle, (const char*)tp.value);
XSetWMIconName(m_display, WindowHandle, &tp);
}
/* this variable will contain the ID of the newly created pixmap. */
Pixmap icon_pixmap;
// TODO : I don't understand why it does not work ....
void SetIcon(etk::File bitmapFile)
{
// load bitmap
EWOL_INFO("try to set icon : " << bitmapFile);
if (false == bitmapFile.Exist()) {
EWOL_ERROR("X11 Icon File does not Exist ... " << bitmapFile);
} else {
etk::UString fileExtention = bitmapFile.GetExtention();
if (fileExtention == "bmp") {
// pointer to the WM hints structure.
XWMHints* win_hints;
unsigned int bitmap_width, bitmap_height;
int hotspot_x, hotspot_y;
int rc = XReadBitmapFile(m_display, WindowHandle,
"assets/iconEdn.xpm",
&bitmap_width, &bitmap_height,
&icon_pixmap,
&hotspot_x, &hotspot_y);
switch (rc) {
case BitmapOpenFailed:
EWOL_ERROR("XReadBitmapFile - could not open file ");
return;
case BitmapFileInvalid:
EWOL_ERROR("XReadBitmapFile - file doesn't contain a valid bitmap.");
return;
case BitmapNoMemory:
EWOL_ERROR("XReadBitmapFile - not enough memory.");
return;
case BitmapSuccess:
/* bitmap loaded successfully - do something with it... */
EWOL_INFO("XReadBitmapFile - bitmap loaded successfully.");
break;
}
// allocate a WM hints structure.
win_hints = XAllocWMHints();
if (!win_hints) {
EWOL_ERROR("XAllocWMHints - out of memory");
return;
}
// initialize the structure appropriately. first, specify which size hints we want to fill in. in our case - setting the icon's pixmap.
win_hints->flags = IconPixmapHint;
// next, specify the desired hints data. in our case - supply the icon's desired pixmap.
win_hints->icon_pixmap = icon_pixmap;
// pass the hints to the window manager.
XSetWMHints(m_display, WindowHandle, win_hints);
EWOL_INFO(" ==> might be done ");
// finally, we can free the WM hints structure.
XFree(win_hints);
} else {
EWOL_ERROR("X11 Icon Extention not managed " << bitmapFile << " Sopported extention : .bmp ");
}
}
}
void RemoveDecoration(void)
{
Hints hints;
@ -731,7 +806,8 @@ etk::UString ewol::CmdLineGet(int32_t id)
}
return *listArgs[id];
}
// might be declared by the application ....
etk::File APP_Icon(void);
int main(int argc, char *argv[])
{
@ -747,6 +823,10 @@ int main(int argc, char *argv[])
//start the basic thread :
EWOL_SystemStart();
usleep(500);
// get the icon file :
etk::File myIcon = APP_Icon();
SetIcon(myIcon);
// Run ...
X11_Run();
// close X11 :

View File

@ -28,6 +28,7 @@
#include <etk/Types.h>
#include <etk/UString.h>
#include <etk/File.h>
#include <ewol/Widget.h>
#include <ewol/Windows.h>
@ -67,6 +68,8 @@ namespace ewol {
// TODO : This is dangerous and might be deprecated ... Soon
int32_t GetCurrentWidth(void);
int32_t GetCurrentHeight(void);
void SetTitle(etk::UString title);
};
// get current time in ms...
int64_t GetCurrentTime(void);

View File

@ -15,12 +15,10 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)
ifeq ($(DEBUG),1)
LOCAL_CFLAGS := -D__PLATFORM__Linux \
-DSVG_DEBUG_LEVEL=3 \
-DPARSER_SVG_VERSION_TAG_NAME="\"???-debug\"" \
-Wall
else
LOCAL_CFLAGS := -D__PLATFORM__Linux \
-DSVG_DEBUG_LEVEL=1 \
-DPARSER_SVG_VERSION_TAG_NAME="\"???-release\""
-DSVG_DEBUG_LEVEL=1
endif
# load the common sources file of the platform