diff --git a/Build/Makefile.Android.mk b/Build/Makefile.Android.mk index d39e7875..5bddb758 100644 --- a/Build/Makefile.Android.mk +++ b/Build/Makefile.Android.mk @@ -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 diff --git a/Build/Makefile.Linux.mk b/Build/Makefile.Linux.mk index 6daca410..50b9b7fb 100644 --- a/Build/Makefile.Linux.mk +++ b/Build/Makefile.Linux.mk @@ -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 " >> 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) diff --git a/Build/Makefile.Linux_old.mk b/Build/Makefile.Linux_old.mk deleted file mode 100644 index 09f2c2ca..00000000 --- a/Build/Makefile.Linux_old.mk +++ /dev/null @@ -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 " >> 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) - - diff --git a/Build/Makefile.common.mk b/Build/Makefile.common.mk deleted file mode 100644 index 349f7bc1..00000000 --- a/Build/Makefile.common.mk +++ /dev/null @@ -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) - - diff --git a/Build/Makefile.mk b/Build/Makefile.mk new file mode 100644 index 00000000..643f4a6c --- /dev/null +++ b/Build/Makefile.mk @@ -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 diff --git a/Build/ewol.mk b/Build/ewol.mk deleted file mode 100644 index c7ec9bc2..00000000 --- a/Build/ewol.mk +++ /dev/null @@ -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 - diff --git a/Sources/libewol/Linux.mk b/Sources/libewol/Linux.mk index 8b696b3b..d77382a9 100644 --- a/Sources/libewol/Linux.mk +++ b/Sources/libewol/Linux.mk @@ -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 diff --git a/Sources/libewol/ewol/Texture/TextureBMP.cpp b/Sources/libewol/ewol/Texture/TextureBMP.cpp index e091790a..9632642a 100644 --- a/Sources/libewol/ewol/Texture/TextureBMP.cpp +++ b/Sources/libewol/ewol/Texture/TextureBMP.cpp @@ -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) { diff --git a/Sources/libewol/ewol/Texture/TextureBMP.h b/Sources/libewol/ewol/Texture/TextureBMP.h index 8033cdfe..f0f3980c 100644 --- a/Sources/libewol/ewol/Texture/TextureBMP.h +++ b/Sources/libewol/ewol/Texture/TextureBMP.h @@ -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); }; diff --git a/Sources/libewol/ewol/base/guiAndroid.cpp b/Sources/libewol/ewol/base/guiAndroid.cpp index 7a529e6e..e021a74d 100644 --- a/Sources/libewol/ewol/base/guiAndroid.cpp +++ b/Sources/libewol/ewol/base/guiAndroid.cpp @@ -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" diff --git a/Sources/libewol/ewol/base/guiX11.cpp b/Sources/libewol/ewol/base/guiX11.cpp index c8ef6baf..8f51adfe 100644 --- a/Sources/libewol/ewol/base/guiX11.cpp +++ b/Sources/libewol/ewol/base/guiX11.cpp @@ -24,12 +24,14 @@ #include +#include #include #include #include #include #include +#include #include #include @@ -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 : diff --git a/Sources/libewol/ewol/ewol.h b/Sources/libewol/ewol/ewol.h index 19d60353..23a4a073 100644 --- a/Sources/libewol/ewol/ewol.h +++ b/Sources/libewol/ewol/ewol.h @@ -28,6 +28,7 @@ #include #include +#include #include #include @@ -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); diff --git a/Sources/libparsersvg/Linux.mk b/Sources/libparsersvg/Linux.mk index ff553d8b..e09dd8ee 100644 --- a/Sources/libparsersvg/Linux.mk +++ b/Sources/libparsersvg/Linux.mk @@ -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