diff --git a/.travis.yml b/.travis.yml index 5745b803..1342875e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,87 +1,90 @@ -language: - - cpp +language: cpp sudo: false os: - - linux - - osx + - linux + - osx branches: - only: - - master - - dev + only: + - master + - dev addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.9 - -env: - - CONF=debug BUILDER=clang - - CONF=debug BUILDER=gcc + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.9 matrix: - include: - - os: linux - env: CONF=debug BUILDER=gcc GCOV=--gcov - - os: linux - env: CONF=release BUILDER=clang - - os: linux - env: CONF=release BUILDER=gcc - exclude: - - os: mingw - env: CONF=debug BUILDER=clang + include: + - os: linux + env: CONF=debug BUILDER=gcc GCOV=--gcov TARGET=-tLinux + - os: linux + env: CONF=release BUILDER=gcc TARGET=-tLinux TAG=Linux + - os: linux + env: CONF=release BUILDER=clang TARGET=-tLinux + #- os: linux + # env: CONF=release BUILDER=gcc TARGET=-tWindows TAG=Mingw + - os: osx + env: CONF=release BUILDER=clang TARGET=-tMacOs TAG=MacOs + - os: osx + env: CONF=release BUILDER=clang TARGET=-tIOs TAG=IOs + exclude: + - os: linux + - os: osx install: - - pip install --user lutin + - pip install --user lutin before_script: - - cd .. - - wget http://atria-soft.com/ci/coverage_send.py - - wget http://atria-soft.com/ci/test_send.py - - wget http://atria-soft.com/ci/warning_send.py - - mkdir bin - - curl https://storage.googleapis.com/git-repo-downloads/repo > bin/repo - - chmod a+x bin/repo - - git config --global user.email "travis@travis.com" - - git config --global user.name "Travis" - - git config --global color.ui "auto" - - git config --global core.editor "vi" - - mkdir WORKING_DIRECTORY - - cd WORKING_DIRECTORY - - ../bin/repo init -u https://github.com/atria-soft/manifest.git - - ../bin/repo sync -j8 - - rm -rf atria-soft/ewol - - cd .. - - pwd - - ls -l - - if [ "$BUILDER" == "gcc" ]; then - COMPILATOR_OPTION="--compilator-version=4.9"; - else - COMPILATOR_OPTION=""; - fi - - if [ "$TRAVIS_OS_NAME" == "osx" ]; then - export PATH=$PATH:/Users/travis/Library/Python/2.7/bin/; - fi + - cd .. + - wget http://atria-soft.com/ci/coverage_send.py + - wget http://atria-soft.com/ci/test_send.py + - wget http://atria-soft.com/ci/warning_send.py + - wget http://atria-soft.com/ci/build_send.py + - mkdir bin + - curl https://storage.googleapis.com/git-repo-downloads/repo > bin/repo + - chmod a+x bin/repo + - git config --global user.email "travis@travis.com" + - git config --global user.name "Travis" + - git config --global color.ui "auto" + - git config --global core.editor "vi" + - mkdir WORKING_DIRECTORY + - cd WORKING_DIRECTORY + - ../bin/repo init -u https://github.com/atria-soft/manifest.git + - ../bin/repo sync -j8 + - rm -rf atria-soft/ewol + - cd .. + - pwd + - ls -l + - if [ "$BUILDER" == "gcc" ]; then + COMPILATOR_OPTION="--compilator-version=4.9"; + else + COMPILATOR_OPTION=""; + fi + - if [ "$TRAVIS_OS_NAME" == "osx" ]; then + export PATH=$PATH:/Users/travis/Library/Python/2.7/bin/; + fi + - python ./build_send.py --tag=$TAG --status=START; script: - - lutin -w -j4 -C -P -c $BUILDER $COMPILATOR_OPTION -m $CONF $GCOV ewol-test 0XX_customwidget 001_HelloWord - + - lutin -w -j4 -C -P $TARGET -c $BUILDER $COMPILATOR_OPTION -m $CONF $GCOV ewol-test 0XX_customwidget 001_HelloWord; STATUS=$? + - python ./build_send.py --tag=$TAG --status="$STATUS"; after_script: - - if [ "$GCOV" != "" ]; then - python ./warning_send.py --find-path ./out/Linux_x86_64/$CONF/build/$BUILDER/ewol/; - fi - - ./out/Linux_x86_64/$CONF/staging/$BUILDER/ewol-test/ewol-test.app/bin/ewol-test -l6 | tee out_test.txt - - if [ "$GCOV" != "" ]; then - python ./test_send.py --file=out_test.txt; - lutin -C -P -c $TARGET $BUILDER $COMPILATOR_OPTION -m $CONF -p ewol?gcov; - python ./coverage_send.py --json=out/Linux_x86_64/$CONF/build/$BUILDER/ewol/ewol_coverage.json; - fi + - if [ "$GCOV" != "" ]; then + python ./warning_send.py --find-path ./out/Linux_x86_64/$CONF/build/$BUILDER/ewol/; + fi + - ./out/Linux_x86_64/$CONF/staging/$BUILDER/ewol-test/ewol-test.app/bin/ewol-test -l6 | tee out_test.txt + - if [ "$GCOV" != "" ]; then + python ./test_send.py --file=out_test.txt; + lutin -C -P $TARGET -c $BUILDER $COMPILATOR_OPTION -m $CONF -p ewol?gcov; + python ./coverage_send.py --json=out/Linux_x86_64/$CONF/build/$BUILDER/ewol/ewol_coverage.json; + fi notifications: - email: - - yui.heero@gmail.com + email: + - yui.heero@gmail.com diff --git a/README.md b/README.md index 7f578eb2..02d8761f 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,13 @@ Release (master) [![Test Status](http://atria-soft.com/ci/test/atria-soft/ewol.svg?branch=master)](http://atria-soft.com/ci/atria-soft/ewol) [![Warning Status](http://atria-soft.com/ci/warning/atria-soft/ewol.svg?branch=master)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=master&tag=Linux)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=master&tag=MacOs)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=master&tag=Mingw)](http://atria-soft.com/ci/atria-soft/ewol) + +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=master&tag=Android)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=master&tag=IOs)](http://atria-soft.com/ci/atria-soft/ewol) + Developement (dev) ------------------ @@ -19,6 +26,13 @@ Developement (dev) [![Test Status](http://atria-soft.com/ci/test/atria-soft/ewol.svg?branch=dev)](http://atria-soft.com/ci/atria-soft/ewol) [![Warning Status](http://atria-soft.com/ci/warning/atria-soft/ewol.svg?branch=dev)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=dev&tag=Linux)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=dev&tag=MacOs)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=dev&tag=Mingw)](http://atria-soft.com/ci/atria-soft/ewol) + +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=dev&tag=Android)](http://atria-soft.com/ci/atria-soft/ewol) +[![Build Status](http://atria-soft.com/ci/build/atria-soft/ewol.svg?branch=dev&tag=IOs)](http://atria-soft.com/ci/atria-soft/ewol) + Instructions ============ @@ -44,11 +58,10 @@ download the software: repo sync -j8 -Compile software and install: ------------------------------ +Compile software and test: +-------------------------- - For this you might use a project that create binaries or something else ... - Show http://github.com/HeeroYui/edn project + lutin ewol-test 0XX_customwidget 001_HelloWord Dependency packages =================== diff --git a/ewol/object/Object.cpp b/ewol/object/Object.cpp index 3c89f5ef..a1c32f40 100644 --- a/ewol/object/Object.cpp +++ b/ewol/object/Object.cpp @@ -32,8 +32,10 @@ void ewol::Object::autoDestroy() { } void ewol::Object::requestDestroyFromChild(const std::shared_ptr& _child) { + EWOL_INFO("requestDestroyFromChild(...) is called when an object reference as a parent have a child that request quto-destroy ..."); EWOL_CRITICAL("Call From Child with no effects ==> must implement : requestDestroyFromChild(...)"); } + void ewol::Object::setParent(const std::shared_ptr& _newParent) { // TODO : Implement change of parent ... m_parent = _newParent; @@ -43,8 +45,6 @@ void ewol::Object::removeParent() { m_parent.reset(); } - - ewol::Object::Object() : m_objectHasBeenInit(false), m_destroy(false), diff --git a/ewol/object/Object.h b/ewol/object/Object.h index 8211cd64..6f0c717d 100644 --- a/ewol/object/Object.h +++ b/ewol/object/Object.h @@ -104,23 +104,42 @@ namespace ewol { return m_objectHasBeenInit; } protected: - std::weak_ptr m_parent; - bool m_destroy; + std::weak_ptr m_parent; //!< Reference on the current parrent. + bool m_destroy; //!< Flag to jknow if the object is requesting has destroy. protected: /** * @brief Auto-destroy the object */ void autoDestroy(); public: + /** + * @brief Destroy the current object + */ virtual void destroy() { autoDestroy(); } + /** + * @brief Check if the current objetc his destroy (in removing) + * @return true The object is removed + * @return false The object is not removed + */ bool isDestroyed() const { return m_destroy; } public: + /** + * @brief Called by a whild that want to remove pointer of itself from the current list of his parrent + * @param[in] _child Object of the child that want to remove itself + */ virtual void requestDestroyFromChild(const std::shared_ptr& _child); + /** + * @brief Set the Object has new parrent. + * @param[in] _newParent Object that requesting the parenting + */ virtual void setParent(const std::shared_ptr& _newParent); + /** + * @brief Remove the current parenting. + */ virtual void removeParent(); private: std::vector m_listType;