You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@etch.apache.org by ve...@apache.org on 2012/08/02 16:40:14 UTC

svn commit: r1368491 [2/8] - in /incubator/etch/trunk: ./ binding-cpp/runtime/ binding-cpp/runtime/include/common/ binding-cpp/runtime/include/serialization/ binding-cpp/runtime/include/transport/ binding-cpp/runtime/lib/capu/ binding-cpp/runtime/lib/c...

Modified: incubator/etch/trunk/binding-cpp/runtime/include/transport/EtchTcpListener.h
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/include/transport/EtchTcpListener.h?rev=1368491&r1=1368490&r2=1368491&view=diff
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/include/transport/EtchTcpListener.h (original)
+++ incubator/etch/trunk/binding-cpp/runtime/include/transport/EtchTcpListener.h Thu Aug  2 14:40:08 2012
@@ -1,129 +1,130 @@
-/* $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to you under the Apache License, Version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-#ifndef __ETCHTCPLISTENER_H__
-#define __ETCHTCPLISTENER_H__
-#include "common/EtchError.h"
-#include "common/EtchObject.h"
-#include "capu/util/SmartPointer.h"
-#include "transport/EtchTransport.h"
-#include "transport/EtchSessionListener.h"
-#include "common/EtchSocket.h"
-#include "transport/EtchConnection.h"
-#include "capu/os/ServerSocket.h"
-#include "capu/os/Socket.h"
-#include "common/EtchServerSocket.h"
-#include "util/EtchURL.h"
-#include "util/EtchResources.h"
-
-/**
- * Implementation of a connection which handles a socket listener.
- */
-class EtchTcpListener
-: public EtchConnection<EtchSessionListener<EtchSocket> >,
-public virtual EtchTransport<EtchSessionListener<EtchSocket> > {
-public:
-
-  /**
-   * Default Constructor
-   */
-  EtchTcpListener(EtchURL *url);
-
-  /**
-   * Destructor
-   */
-  ~EtchTcpListener();
-
-  virtual capu::bool_t isStarted();
-
-  virtual status_t close();
-
-  /**
-   * @see TransportData
-   */
-  virtual status_t transportControl(capu::SmartPointer<EtchObject> control, capu::SmartPointer<EtchObject> value);
-
-  /**
-   * @see TransportData
-   */
-  virtual status_t transportNotify(capu::SmartPointer<EtchObject> event);
-
-  /**
-   * @see TransportData
-   */
-  virtual status_t transportQuery(capu::SmartPointer<EtchObject> query, capu::SmartPointer<EtchObject> &result);
-
-  /**
-   * @return Session
-   */
-  virtual EtchSessionListener<EtchSocket>* getSession();
-
-  /**
-   * Sets session
-   */
-  virtual void setSession(EtchSessionListener<EtchSocket>* session);
-
-  virtual void operator()(void * param);
-
-  /**
-   * @see EtchConnection
-   */
-  virtual status_t setupSocket();
-
-protected:
-
-  /**
-   * @see EtchConnection
-   */
-  virtual status_t openSocket(capu::bool_t reconnect);
-
-  /**
-   * @see EtchConnection
-   */
-  virtual status_t readSocket();
-
-private:
-  /**
-   * The session for the connection.
-   */
-  EtchSessionListener<EtchSocket>* mSession;
-
-  EtchServerSocket* mSocket;
-
-  capu::uint16_t mPort;
-
-  capu::uint8_t mBackLog;
-
-
-public:
-  /**
-   * Query term for URI to specify backlog value to ServerSocket. The value
-   * is "TcpListener.backlog". The backlog must be >= 0 and somewhat
-   * reasonable. The value 0 specifies the system default, the same as if you
-   * leave the term off altogether.
-   * 
-   * Example: tcp://host:port?TcpListener.backlog=250
-   * 
-   * @see #TcpListener(String, Resources)
-   */
-  const static EtchString BACKLOG;
-};
-
-#endif /* ETCHTCPLISTENER_H */
-
+/* $Id$
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __ETCHTCPLISTENER_H__
+#define __ETCHTCPLISTENER_H__
+#include "common/EtchError.h"
+#include "common/EtchObject.h"
+#include "capu/util/SmartPointer.h"
+#include "transport/EtchTransport.h"
+#include "transport/EtchSessionListener.h"
+#include "common/EtchSocket.h"
+#include "transport/EtchConnection.h"
+#include "capu/os/ServerSocket.h"
+#include "capu/os/Socket.h"
+#include "common/EtchServerSocket.h"
+#include "util/EtchURL.h"
+#include "util/EtchResources.h"
+#include "capu/util/Runnable.h"
+
+/**
+ * Implementation of a connection which handles a socket listener.
+ */
+class EtchTcpListener
+: public EtchConnection<EtchSessionListener<EtchSocket> >,
+public virtual EtchTransport<EtchSessionListener<EtchSocket> >, public capu::Runnable {
+public:
+
+  /**
+   * Default Constructor
+   */
+  EtchTcpListener(EtchURL *url);
+
+  /**
+   * Destructor
+   */
+  ~EtchTcpListener();
+
+  virtual capu::bool_t isStarted();
+
+  virtual status_t close();
+
+  /**
+   * @see TransportData
+   */
+  virtual status_t transportControl(capu::SmartPointer<EtchObject> control, capu::SmartPointer<EtchObject> value);
+
+  /**
+   * @see TransportData
+   */
+  virtual status_t transportNotify(capu::SmartPointer<EtchObject> event);
+
+  /**
+   * @see TransportData
+   */
+  virtual status_t transportQuery(capu::SmartPointer<EtchObject> query, capu::SmartPointer<EtchObject> &result);
+
+  /**
+   * @return Session
+   */
+  virtual EtchSessionListener<EtchSocket>* getSession();
+
+  /**
+   * Sets session
+   */
+  virtual void setSession(EtchSessionListener<EtchSocket>* session);
+
+  virtual void operator()(void * param);
+
+  /**
+   * @see EtchConnection
+   */
+  virtual status_t setupSocket();
+
+protected:
+
+  /**
+   * @see EtchConnection
+   */
+  virtual status_t openSocket(capu::bool_t reconnect);
+
+  /**
+   * @see EtchConnection
+   */
+  virtual status_t readSocket();
+
+private:
+  /**
+   * The session for the connection.
+   */
+  EtchSessionListener<EtchSocket>* mSession;
+
+  EtchServerSocket* mSocket;
+
+  capu::uint16_t mPort;
+
+  capu::uint8_t mBackLog;
+
+
+public:
+  /**
+   * Query term for URI to specify backlog value to ServerSocket. The value
+   * is "TcpListener.backlog". The backlog must be >= 0 and somewhat
+   * reasonable. The value 0 specifies the system default, the same as if you
+   * leave the term off altogether.
+   * 
+   * Example: tcp://host:port?TcpListener.backlog=250
+   * 
+   * @see #TcpListener(String, Resources)
+   */
+  const static EtchString BACKLOG;
+};
+
+#endif /* ETCHTCPLISTENER_H */
+

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/.gitignore
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/.gitignore?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/.gitignore (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/.gitignore Thu Aug  2 14:40:08 2012
@@ -0,0 +1,3 @@
+3psw
+build
+deliverable

Modified: incubator/etch/trunk/binding-cpp/runtime/lib/capu/CMakeLists.txt
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/CMakeLists.txt?rev=1368491&r1=1368490&r2=1368491&view=diff
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/CMakeLists.txt (original)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/CMakeLists.txt Thu Aug  2 14:40:08 2012
@@ -1,27 +1,26 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to you under the Apache License, Version
-# 2.0 (the "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)  # Must be first line
-
-PROJECT(capu)                        # Must be second line
-
-INCLUDE(cmake/acme.cmake)            # Must be third line
-
-ADD_SUBDIRECTORY(modules)
-
-BUILD_UNIT_TESTS()
-REPORT()
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version
+# 2.0 (the "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)  # Must be first line
+
+PROJECT(capu)                        # Must be second line
+
+INCLUDE(cmake/acme/acme.cmake)       # Must be third line
+
+ADD_SUBDIRECTORY(modules)
+
+FINALIZE()

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/acme.cmake
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/acme.cmake?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/acme.cmake (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/acme.cmake Thu Aug  2 14:40:08 2012
@@ -0,0 +1,152 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+
+
+#--------------------------------------------------------------------------
+# if a toolchain was provided and the toolchain file exists make sure,
+# all variables are set as early as possible
+#--------------------------------------------------------------------------
+IF (NOT "${CMAKE_TOOLCHAIN_FILE}" STREQUAL "" )
+	IF (EXISTS "${CMAKE_TOOLCHAIN_FILE}")
+		INCLUDE(${CMAKE_TOOLCHAIN_FILE})
+		MESSAGE(STATUS "Using toolchain file: " ${CMAKE_TOOLCHAIN_FILE})
+	ELSE()
+		MESSAGE(STATUS "WARNING: toolchain file not found: " ${CMAKE_TOOLCHAIN_FILE})
+	ENDIF()
+ENDIF()
+
+
+
+#--------------------------------------------------------------------------
+# store current path to acme build system
+# there the macro CMAKE_CURRENT_LIST_DIR, but it requires Cmake 2.8.3 or higher.
+# this solution works on CMake 2.6 as well.
+#--------------------------------------------------------------------------
+get_filename_component(ACME_PATH ${CMAKE_CURRENT_LIST_FILE} PATH) 
+MESSAGE(STATUS "using ACME base directory: ${ACME_PATH}")
+
+#--------------------------------------------------------------------------
+# include internal implementation, configuration and plugins
+#--------------------------------------------------------------------------
+INCLUDE(${ACME_PATH}/internal/config.cmake)
+INCLUDE(${ACME_PATH}/internal/macros.cmake)
+
+MACRO(ADD_CMAKE_PROJECT aap_project_name)
+	INTERNAL_ADD_CMAKE_PROJECT("${aap_project_name}" "${ARGN}")
+ENDMACRO(ADD_CMAKE_PROJECT)
+
+MACRO(ADD_EXTERNAL_LIBRARY ael_library_name)
+	INTERNAL_ADD_EXTERNAL_LIBRARY("${ael_library_name}" "${ARGN}")
+ENDMACRO(ADD_EXTERNAL_LIBRARY)
+
+INCLUDE(${ACME_PATH}/internal/plugins.cmake)
+
+MACRO(ADD_MODULE ad_module_name ad_type)
+	INTERNAL_ADD_MODULE("${ad_module_name}" "${ad_type}")
+ENDMACRO(ADD_MODULE)
+
+MACRO(ADD_OPTIONAL_MODULE aom_module_name aom_type)
+	INTERNAL_ADD_OPTIONAL_MODULE("${aom_module_name}" "${aom_type}")
+ENDMACRO(ADD_OPTIONAL_MODULE)
+
+MACRO(REQUIRED_PACKAGE pkg_name)
+	INTERNAL_REQUIRED_PACKAGE("${pkg_name}")
+ENDMACRO(REQUIRED_PACKAGE)
+
+MACRO(OPTIONAL_PACKAGE pkg_name)
+	INTERNAL_OPTIONAL_PACKAGE("${pkg_name}")
+ENDMACRO(OPTIONAL_PACKAGE)
+
+MACRO(ADD_DEPENDENCY ad_name)
+	INTERNAL_ADD_DEPENDENCY("${ad_name}")
+ENDMACRO(ADD_DEPENDENCY)
+
+MACRO(ADD_COMPILER_FLAG ad_compiler_flag)
+	INTERNAL_ADD_COMPILER_FLAG("${ad_compiler_flag}")
+ENDMACRO(ADD_COMPILER_FLAG)
+
+MACRO(ADD_DEBUG_COMPILER_FLAG adcf_compiler_flag)
+	INTERNAL_ADD_DEBUG_COMPILER_FLAG("${adcf_compiler_flag}")
+ENDMACRO(ADD_DEBUG_COMPILER_FLAG)
+
+MACRO(ADD_RELEASE_COMPILER_FLAG arcf_compiler_flag)
+	INTERNAL_ADD_RELEASE_COMPILER_FLAG("${arcf_compiler_flag}")
+ENDMACRO(ADD_RELEASE_COMPILER_FLAG)
+
+MACRO(ADD_DEFINITION ad_definition)
+	INTERNAL_ADD_DEFINITION("${ad_definition}")
+ENDMACRO(ADD_DEFINITION)
+
+MACRO(ADD_DEBUG_DEFINITION add_definition)
+	INTERNAL_ADD_DEBUG_DEFINITION("${add_definition}")
+ENDMACRO(ADD_DEBUG_DEFINITION)
+
+MACRO(ADD_RELEASE_DEFINITION ard_definition)
+	INTERNAL_ADD_RELEASE_DEFINITION("${ard_definition}")
+ENDMACRO(ADD_RELEASE_DEFINITION)
+
+MACRO(ADD_LINKER_FLAG alf_linker_flag)
+	INTERNAL_ADD_LINKER_FLAG("${alf_linker_flag}")
+ENDMACRO(ADD_LINKER_FLAG)
+
+MACRO(ADD_DEBUG_LINKER_FLAG adlf_linker_flag)
+	INTERNAL_ADD_DEBUG_LINKER_FLAG("${adlf_linker_flag}")
+ENDMACRO(ADD_DEBUG_LINKER_FLAG)
+
+MACRO(ADD_RELEASE_LINKER_FLAG arlf_linker_flag)
+	INTERNAL_ADD_RELEASE_LINKER_FLAG("${arlf_linker_flag}")
+ENDMACRO(ADD_RELEASE_LINKER_FLAG)
+
+MACRO(ADD_FILE)
+	INTERNAL_ADD_FILE(${ARGN})
+ENDMACRO(ADD_FILE)
+
+MACRO(ADD_OPTIONAL_FILE aoc_name)
+	INTERNAL_ADD_OPTIONAL_FILE("${aoc_name}" "${ARGN}")
+ENDMACRO(ADD_OPTIONAL_FILE)
+
+MACRO(LINK_LIBRARY ll_name)
+	INTERNAL_LINK_LIBRARY("${ll_name}" ${ARGN})
+ENDMACRO(LINK_LIBRARY ll_name)
+
+MACRO(LINK_LIBRARY_GROUP llg_name)
+	INTERNAL_LINK_LIBRARY_GROUP("${llg_name}" ${ARGN})
+ENDMACRO(LINK_LIBRARY_GROUP)
+
+MACRO(ADD_INSTALL_FILE)
+	INTERNAL_ADD_INSTALL_FILE("${ARGN}")
+ENDMACRO(ADD_INSTALL_FILE)
+
+MACRO(JUST_DOIT)
+	INTERNAL_JUST_DOIT()
+ENDMACRO(JUST_DOIT)
+
+MACRO(INSTALL_MODULE)
+	INTERNAL_INSTALL_MODULE("${ARGN}")
+ENDMACRO(INSTALL_MODULE)
+
+MACRO(INSTALL_RESOURCES)
+	INTERNAL_INSTALL_RESOURCES("${ARGN}")
+ENDMACRO(INSTALL_RESOURCES)
+
+MACRO(FINALIZE)
+	INTERNAL_FINALIZE()
+ENDMACRO()
+
+MACRO(REPORT)
+	INTERNAL_REPORT()
+ENDMACRO(REPORT)
+

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/config.cmake
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/config.cmake?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/config.cmake (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/config.cmake Thu Aug  2 14:40:08 2012
@@ -0,0 +1,61 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+#
+
+SET(HEADER_FILE_EXTENSIONS "h;hpp;inc" CACHE STRING "file extension of header files.")
+SET(SOURCE_FILE_EXTENSIONS "cpp;c" CACHE STRING "file extension of source files.")
+
+SET(BUILD_UNITTESTS 1 CACHE BOOL "Building Unit-Tests")
+IF(NOT DEFINED THIRD_PARTY_DIR)
+	SET(THIRD_PARTY_DIR ${PROJECT_SOURCE_DIR}/3psw)
+ENDIF()
+
+IF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+	SET(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/deliverable/${CMAKE_PROJECT_NAME}"  CACHE PATH "Install prefix" FORCE )
+ENDIF(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+
+SET(CMAKE_CMAKE_OUTPUT_DIRECTORY    "${CMAKE_INSTALL_PREFIX}/cmake"              CACHE INTERNAL "Path to store information for external use of the project.")
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY  "${CMAKE_INSTALL_PREFIX}/lib/${TARGET_OS}_${TARGET_ARCH}" CACHE INTERNAL "Path to store library files.")
+SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY  "${CMAKE_INSTALL_PREFIX}/lib/${TARGET_OS}_${TARGET_ARCH}" CACHE INTERNAL "Path to store archive files.")
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY  "${CMAKE_INSTALL_PREFIX}/bin/${TARGET_OS}_${TARGET_ARCH}" CACHE INTERNAL "Path to store executable files.")
+SET(CMAKE_HEADER_OUTPUT_DIRECTORY   "${CMAKE_INSTALL_PREFIX}/include"            CACHE INTERNAL "Path to store public header files.")
+SET(CMAKE_RESOURCE_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/res"                CACHE INTERNAL "Path to store resource files.")
+SET(CMAKE_DOC_OUTPUT_DIRECTORY      "${CMAKE_INSTALL_PREFIX}/doc"                CACHE INTERNAL "Path to store documentation files.")
+
+
+SET(GLOBAL_EXTERN_INCLUDE_DIRS      ""  CACHE INTERNAL "collect extern include dirs")
+SET(BUILD_GLOBAL_TEST_EXECUTABLE    0   CACHE BOOL     "Enable building of one test executable")
+SET(GLOBAL_TEST_LIBS                ""  CACHE INTERNAL "collect test libs")
+SET(GLOBAL_TEST_SOURCE              ""  CACHE INTERNAL "collect test source")
+SET(GLOBAL_TEST_INCLUDE_DIRECTORIES ""  CACHE INTERNAL "collect test include directories")
+
+SET(GLOBAL_TEST_DEBUG_COMPILER_FLAGS      ""  CACHE INTERNAL "collect test compiler flags")
+SET(GLOBAL_TEST_DEBUG_LINKER_FLAGS        ""  CACHE INTERNAL "collect test linker flags")
+SET(GLOBAL_TEST_DEBUG_DEFINITIONS         ""  CACHE INTERNAL "collect test defintions")
+SET(GLOBAL_TEST_RELEASE_COMPILER_FLAGS    ""  CACHE INTERNAL "collect test compiler flags")
+SET(GLOBAL_TEST_RELEASE_LINKER_FLAGS      ""  CACHE INTERNAL "collect test linker flags")
+SET(GLOBAL_TEST_RELEASE_DEFINITIONS       ""  CACHE INTERNAL "collect test defintions")
+
+SET(GLOBAL_TEST_LINKER_DIRECTORIES  ""  CACHE INTERNAL "collect test linker directories")
+#SET(GLOBAL_INCLUDE_DIRECTORIES      ""  CACHE INTERNAL "collect include directories")
+SET(GLOBAL_LIB_DIRECTORIES          ""  CACHE INTERNAL "collect lib directories")
+SET(GLOBAL_LIBRARIES                ""  CACHE INTERNAL "collect all linkable libraries")
+
+SET(UTILS_MODULES_STATIC  "" CACHE INTERNAL "")
+SET(UTILS_MODULES_DYNAMIC "" CACHE INTERNAL "")
+SET(UTILS_MODULES_EXE     "" CACHE INTERNAL "")
+SET(UTILS_MODULES_TESTS   "" CACHE INTERNAL "")
+

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/macros.cmake
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/macros.cmake?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/macros.cmake (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/macros.cmake Thu Aug  2 14:40:08 2012
@@ -0,0 +1,1060 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to you under the Apache License, Version
+# 2.0 (the "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Split arguments passed to a function into several lists separated by
+# specified identifiers that do not have an associated list e.g.:
+#
+# SET(arguments
+#   hello world
+#   LIST3 foo bar
+#   LIST1 fuz baz
+#   )
+# ARGUMENT_SPLITTER("${arguments}" "LIST1 LIST2 LIST3" ARG)
+#
+# results in 8 distinct variables:
+#  * ARG_DEFAULT_FOUND: 1
+#  * ARG_DEFAULT: hello;world
+#  * ARG_LIST1_FOUND: 1
+#  * ARG_LIST1: fuz;baz
+#  * ARG_LIST2_FOUND: 0
+#  * ARG_LIST2:
+#  * ARG_LIST3_FOUND: 1
+#  * ARG_LIST3: foo;bar
+
+MACRO(INTERNAL_ARGUMENT_SPLITTER argInput argKeywordList argPrefix)
+
+	SET(inputTokenList "DEFAULT" "${argInput}")
+	SET(keywordList "DEFAULT ${argKeywordList}")
+	SET(prefix ${argPrefix})
+
+	# convert provided inputTokenList to list
+	#SEPARATE_ARGUMENTS(inputTokenList)
+	SEPARATE_ARGUMENTS(keywordList)
+
+	# initialize all out variables to default values
+	FOREACH(keyword ${keywordList})
+		SET(${prefix}_${keyword}_FOUND 0)
+		SET(${prefix}_${keyword} "")
+	ENDFOREACH(keyword)
+	
+	# iterate all tokens of provided input
+	FOREACH(token ${inputTokenList})
+		# check if current token is a keyword
+		SET(tokenIsKeyword 0)
+		FOREACH(keyword ${keywordList})
+			IF ("${keyword}" STREQUAL "${token}")
+				SET(tokenIsKeyword 1)
+				SET(lastKeyword ${keyword})
+			ENDIF ("${keyword}" STREQUAL "${token}")
+		ENDFOREACH(keyword)
+
+		IF (${tokenIsKeyword})
+			# if current token is keyword, set found variable to true
+			SET(${prefix}_${token}_FOUND 1)
+		ELSE (${tokenIsKeyword})
+			# if current token is not keyword, append token to variable of last found keyword
+			SET(${prefix}_${lastKeyword} ${${prefix}_${lastKeyword}} ${token})
+		ENDIF (${tokenIsKeyword})
+		
+		 
+	ENDFOREACH(token)
+ENDMACRO(INTERNAL_ARGUMENT_SPLITTER)
+
+#MACRO(INTERNAL_ADD_OS_SUPPORT os)
+#	SET(SUPPORTED_OS ${os} ${ARGN})
+#	SET(TARGET_OS ${os} CACHE STRINGS "Select target OS")
+#	SET_PROPERTY(CACHE TARGET_OS PROPERTY STRINGS ${SUPPORTED_OS})
+#ENDMACRO(INTERNAL_ADD_OS_SUPPORT)
+
+MACRO(INTERNAL_ADD_PREFIX var prefix)
+	SET(${var})
+	IF(NOT "${ARGN}" STREQUAL "")
+	FOREACH(item ${ARGN})
+		SET(${var} ${${var}} ${prefix}${item})
+	ENDFOREACH(item)
+	ENDIF(NOT "${ARGN}" STREQUAL "")
+ENDMACRO(INTERNAL_ADD_PREFIX)
+
+
+MACRO(INTERNAL_SPLIT_PATH_AND_FILE file_with_path path filename)
+	GET_FILENAME_COMPONENT(${path} ${file_with_path} PATH)
+	IF(NOT "${${path}}" STREQUAL "")
+		SET(${path} "${${path}}/")
+	ENDIF()
+	GET_FILENAME_COMPONENT(${filename} ${file_with_path} NAME)
+ENDMACRO(INTERNAL_SPLIT_PATH_AND_FILE)
+
+
+MACRO(INTERNAL_GET_MODULE_NAME var)
+	GET_FILENAME_COMPONENT(${var} ${CMAKE_CURRENT_SOURCE_DIR} NAME)
+ENDMACRO(INTERNAL_GET_MODULE_NAME)
+
+
+MACRO(INTERNAL_GET_PUBLIC_INCLUDE_PATH var)
+	INTERNAL_GET_MODULE_NAME(gpip_module_name)
+	INTERNAL_GET_INTERN_INCLUDE_PATH(gpip_include_path)	
+	SET(${var} "${gpip_include_path}/${gpip_module_name}")
+ENDMACRO(INTERNAL_GET_PUBLIC_INCLUDE_PATH)
+
+
+MACRO(INTERNAL_GET_INTERN_INCLUDE_PATH var)
+	SET(${var} ${CMAKE_CURRENT_SOURCE_DIR}/include)
+ENDMACRO(INTERNAL_GET_INTERN_INCLUDE_PATH)
+
+
+MACRO(INTERNAL_GET_PLATFORM_INCLUDE_PATH var gpi_classname)
+	INTERNAL_SPLIT_PATH_AND_FILE(${gpi_classname} gpi_path gpi_filename)
+	INTERNAL_GET_INTERN_INCLUDE_PATH(gpi_include_path)
+	#IF(NOT "${gpi_path}" STREQUAL "")
+		SET(${var} "${gpi_include_path}/${CURRENT_MODULE_NAME}/${gpi_path}arch")
+	#ELSE()
+	#	SET(${var} "${gpi_include_path}/${CURRENT_MODULE_NAME}/arch")
+	#ENDIF()
+	
+ENDMACRO(INTERNAL_GET_PLATFORM_INCLUDE_PATH)
+
+
+MACRO(INTERNAL_GET_SOURCE_PATH var)
+	SET(${var} ${CMAKE_CURRENT_SOURCE_DIR}/src)
+ENDMACRO(INTERNAL_GET_SOURCE_PATH)
+
+
+MACRO(INTERNAL_GET_PLATFORM_SOURCE_PATH var gps_classname)
+#	INTERNAL_GET_SOURCE_PATH(gps_source_path)
+#	SET(${var} "${gps_source_path}/arch")
+	
+	INTERNAL_SPLIT_PATH_AND_FILE(${gps_classname} gps_path gps_filename)
+	INTERNAL_GET_SOURCE_PATH(gps_source_path)
+	SET(${var} "${gps_source_path}/${gps_path}arch")
+ENDMACRO(INTERNAL_GET_PLATFORM_SOURCE_PATH)
+
+
+MACRO(INTERNAL_GET_TEST_PATH var)
+	SET(${var} ${CMAKE_CURRENT_SOURCE_DIR}/test)
+ENDMACRO(INTERNAL_GET_TEST_PATH)
+
+
+MACRO(INTERNAL_GET_PATH_TO_FILES gsp_class)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "PREFIX" GSP)
+	INTERNAL_SPLIT_PATH_AND_FILE(${gsp_class} GSP_PATH_TO_FILE GSP_FILENAME)
+          
+	STRING(TOUPPER ${GSP_FILENAME} gsp_varname)
+	IF(NOT "${GSP_PREFIX}" STREQUAL "")
+		SET(gsp_varname ${GSP_PREFIX})
+	#ELSEIF(NOT "${GSP_PLATFORM}" STREQUAL "")
+	#	STRING(TOUPPER ${GSP_PLATFORM} gsp_platform_varname)
+	#	SET(gsp_varname ${gsp_platform_varname}${gsp_varname})
+		
+	ENDIF()
+                
+	SET(gsp_all_classes ${gsp_class} ${GSP_DEFAULT_ARGS})
+
+	SET(${gsp_varname}_PUBLIC_HEADER)
+	SET(${gsp_varname}_INTERN_HEADER)
+	SET(${gsp_varname}_SOURCE_FILES)
+                
+	FOREACH(gsp_current_class ${gsp_all_classes})
+
+		INTERNAL_GET_PUBLIC_INCLUDE_PATH( gsp_public_include_path )
+                           
+		FOREACH(gsp_current_header_type ${HEADER_FILE_EXTENSIONS})
+			SET(gsp_public_include_file "${gsp_public_include_path}/${gsp_current_class}.${gsp_current_header_type}" )
+			
+			IF(EXISTS ${gsp_public_include_file})
+				SET(${gsp_varname}_PUBLIC_HEADER ${${gsp_varname}_PUBLIC_HEADER} ${gsp_public_include_file})
+			ENDIF()
+			
+			INTERNAL_GET_PLATFORM_INCLUDE_PATH( gsp_platform_include_path "${gsp_current_class}" )
+			SET(gsp_generic_include_file  "${gsp_platform_include_path}/${GSP_FILENAME}.${gsp_current_header_type}" )
+
+			IF(EXISTS ${gsp_generic_include_file})
+				SET(${gsp_varname}_PUBLIC_HEADER ${${gsp_varname}_PUBLIC_HEADER} ${gsp_generic_include_file})
+			ENDIF()
+
+			INTERNAL_GET_INTERN_INCLUDE_PATH( gsp_intern_include_path )						
+			SET(gsp_intern_include_file "${gsp_intern_include_path}/${gsp_current_class}.${gsp_current_header_type}" )
+			IF(EXISTS ${gsp_intern_include_file})
+				SET(${gsp_varname}_INTERN_HEADER ${${gsp_varname}_INTERN_HEADER} ${gsp_intern_include_file})
+			ELSE()
+				SET(gsp_intern_include_files "${gsp_platform_include_path}/${TARGET_OS}/${GSP_FILENAME}.${gsp_current_header_type}" "${gsp_platform_include_path}/${TARGET_OS}_${TARGET_ARCH}/${GSP_FILENAME}.${gsp_current_header_type}")
+				FOREACH(gsp_intern_include_file ${gsp_intern_include_files})
+					IF(EXISTS ${gsp_intern_include_file})
+						SET(${gsp_varname}_INTERN_HEADER ${${gsp_varname}_INTERN_HEADER} ${gsp_intern_include_file})	
+					ENDIF()
+				ENDFOREACH()
+			ENDIF()
+		ENDFOREACH()
+               	    
+		FOREACH(gsp_current_source_type ${SOURCE_FILE_EXTENSIONS})
+			INTERNAL_GET_SOURCE_PATH(gsp_source_path)
+			SET(gsp_source_file "${gsp_source_path}/${gsp_current_class}.${gsp_current_source_type}" )
+			IF(EXISTS ${gsp_source_file})
+				SET(${gsp_varname}_SOURCE_FILES ${${gsp_varname}_SOURCE_FILES} ${gsp_source_file})
+			ELSE()
+				INTERNAL_GET_PLATFORM_SOURCE_PATH(gsp_platform_source_path "${gsp_current_class}")
+				SET(gsp_source_files "${gsp_platform_source_path}/${TARGET_OS}/${GSP_FILENAME}.${gsp_current_source_type}" "${gsp_platform_source_path}/${TARGET_OS}_${TARGET_ARCH}/${GSP_FILENAME}.${gsp_current_source_type}")
+				FOREACH(gsp_source_file ${gsp_source_files})
+					IF(EXISTS ${gsp_source_file})
+						SET(${gsp_varname}_SOURCE_FILES ${${gsp_varname}_SOURCE_FILES} ${gsp_source_file})
+					ENDIF()
+				ENDFOREACH()
+			ENDIF()
+		ENDFOREACH()
+		
+		INTERNAL_GET_TEST_PATH( gsp_test_path )
+		SET(gsp_test_header "${gsp_test_path}/${gsp_current_class}Test.h")
+		SET(gsp_test_source "${gsp_test_path}/${gsp_current_class}Test.cpp")
+                           					   
+		IF(EXISTS ${gsp_test_header})
+			SET(${gsp_varname}_TEST_FILES ${${gsp_varname}_TEST_FILES} ${gsp_test_header})
+		ENDIF()
+                               
+		IF(EXISTS ${gsp_test_source})
+			SET(${gsp_varname}_TEST_FILES ${${gsp_varname}_TEST_FILES} ${gsp_test_source})
+		ENDIF()
+                               
+	ENDFOREACH()
+
+ENDMACRO(INTERNAL_GET_PATH_TO_FILES)
+
+
+MACRO(INTERNAL_ADD_FILE ac_name)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "SOURCE_VAR TEST_VAR SOURCE_GROUP PREFIX CONDITIONS" AC)
+
+	SET(ADD_FILE_CONDITIONS_MET 1)
+	FOREACH(CONDITION ${AC_CONDITIONS})
+		IF (NOT ${CONDITION})
+			MESSAGE(STATUS "Excluded class ${ac_name}, condition ${CONDITION} failed")
+			SET(ADD_FILE_CONDITIONS_MET 0)
+		ENDIF()
+	ENDFOREACH()
+	
+	IF(${ADD_FILE_CONDITIONS_MET})
+		
+		SET(ac_all_classes ${ac_name} ${AC_DEFAULT_ARGS})
+			
+		IF("${AC_PREFIX}" STREQUAL "")
+			INTERNAL_SPLIT_PATH_AND_FILE(${ac_name} ac_path ac_filename)
+			
+			STRING(TOUPPER ${ac_filename} ac_varname)
+			SET(AC_PREFIX ${ac_varname})
+		ENDIF()
+	
+		INTERNAL_GET_PATH_TO_FILES(${ac_all_classes} PREFIX ${AC_PREFIX})
+		IF(NOT "${${AC_PREFIX}_SOURCE_FILES}" STREQUAL "")
+			SET(${CURRENT_MODULE_NAME}_HAS_SOURCE_FILES 1 CACHE INTERNAL "")
+		ENDIF()
+		
+		IF(NOT "${AC_SOURCE_GROUP}" STREQUAL "")
+			SET(${AC_SOURCE_GROUP} ${${AC_SOURCE_GROUP}} ${${AC_PREFIX}_INTERN_HEADER} ${${AC_PREFIX}_SOURCE_FILES})
+		ENDIF()
+		
+		IF(NOT "${AC_SOURCE_VAR}" STREQUAL "")
+			SET(${AC_SOURCE_VAR} ${${AC_SOURCE_VAR}} ${${AC_PREFIX}_PUBLIC_HEADER} ${${AC_PREFIX}_INTERN_HEADER} ${${AC_PREFIX}_SOURCE_FILES})
+		ELSE()
+			SET(${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES ${${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES} ${${AC_PREFIX}_PUBLIC_HEADER} ${${AC_PREFIX}_INTERN_HEADER} ${${AC_PREFIX}_SOURCE_FILES})
+		ENDIF()
+		
+		IF(NOT "${AC_TEST_VAR}" STREQUAL "")
+			SET(${AC_TEST_VAR} ${${AC_TEST_VAR}} ${${AC_PREFIX}_TEST_FILES})
+		ELSE()
+			SET(${CURRENT_MODULE_NAME}_TEST_FILES ${${CURRENT_MODULE_NAME}_TEST_FILES} ${${AC_PREFIX}_TEST_FILES})
+		ENDIF()
+		
+	ENDIF()
+	
+ENDMACRO(INTERNAL_ADD_FILE)
+
+
+MACRO(INTERNAL_ADD_OPTIONAL_FILE aoc_name)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "SOURCE_VAR SOURCE_GROUP PREFIX CONDITIONS" AOC)
+	IF("${AOC_PREFIX}" STREQUAL "")
+		INTERNAL_SPLIT_PATH_AND_FILE(${aoc_name} aoc_path aoc_filename)
+		STRING(TOUPPER ${aoc_filename} aoc_varname)
+		SET(AOC_PREFIX ${aoc_varname})
+	ENDIF()
+
+	SET(aoc_temp_files)
+	set(aoc_temp_test)
+	
+	INTERNAL_ADD_FILE(${aoc_name} ${AOC_DEFAULT_ARGS} SOURCE_VAR aoc_temp_files TEST_VAR aoc_temp_test SOURCE_GROUP ${AOC_SOURCE_GROUP} PREFIX ${AOC_PREFIX} CONDITIONS ${AOC_CONDITIONS})
+	INTERNAL_ADD_OPTIONAL_FILES(${CURRENT_UPPER_MODULE_NAME}_${AOC_PREFIX} SOURCE_FILES ${aoc_temp_files} TEST_FILES ${aoc_temp_test})
+
+	SET(${CURRENT_UPPER_MODULE_NAME}_SOURCE_FILES ${${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES} ${${CURRENT_UPPER_MODULE_NAME}_${AOC_PREFIX}_SOURCE_FILES})
+	SET(${CURRENT_MODULE_NAME}_TEST_FILES ${${CURRENT_MODULE_NAME}_TEST_FILES} ${${CURRENT_UPPER_MODULE_NAME}_${AOC_PREFIX}_TEST_FILES})
+ENDMACRO(INTERNAL_ADD_OPTIONAL_FILE)
+
+
+MACRO(INTERNAL_ADD_SOURCE_FILES destination)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "PUBLIC_HEADER INTERN_HEADER SOURCE_FILES" ARG)	
+	SET(${destination} ${${destination}} ${ARG_PUBLIC_HEADER} ${ARG_INTERN_HEADER} ${ARG_SOURCE_FILES})
+ENDMACRO(INTERNAL_ADD_SOURCE_FILES)
+
+
+MACRO(INTERNAL_ADD_OPTIONAL_FILES prefix)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "SOURCE_FILES TEST_FILES" AOF)
+	
+	SET(${prefix}_ENABLE "on" CACHE BOOL "Enable ${prefix}" )
+	SET(${prefix}_SOURCE_FILES)
+	SET(${prefix}_TEST_FILES)
+
+	IF(${WITH_${CURRENT_UPPER_MODULE_NAME}})
+		IF(${${prefix}_ENABLE})
+			SET(${prefix}_SOURCE_FILES ${AOF_SOURCE_FILES})
+			SET(${prefix}_TEST_FILES   ${AOF_TEST_FILES})
+		ENDIF()
+	ELSE()
+		INTERNAL_REMOVE_OPTIONAL_FILES(${prefix})
+	ENDIF()
+ENDMACRO(INTERNAL_ADD_OPTIONAL_FILES)
+
+
+MACRO(INTERNAL_ADD_DEPENDENCY ad_name)
+	
+	IF("${ad_name}_FOUND")
+		
+        SET(${CURRENT_MODULE_NAME}_DEPENDENCIES ${${CURRENT_MODULE_NAME}_DEPENDENCIES} ${ad_name} ${${ad_name}_DEPENDENCIES} CACHE INTERNAL "")
+		
+		FOREACH(iad_dependency ${${ad_name}_DEPENDENCIES})
+			INTERNAL_ADD_DEFINITION("${${iad_dependency}_DEPENDENT_DEFINITIONS}")
+			INTERNAL_ADD_DEBUG_DEFINITION("${${iad_dependency}_DEPENDENT_DEBUG_DEFINITIONS}")
+			INTERNAL_ADD_RELEASE_DEFINITION("${${iad_dependency}_DEPENDENT_RELEASE_DEFINITIONS}")
+		ENDFOREACH()
+		
+		INTERNAL_ADD_DEFINITION("${${ad_name}_DEPENDENT_DEFINITIONS}")
+		INTERNAL_ADD_DEBUG_DEFINITION("${${ad_name}_DEPENDENT_DEBUG_DEFINITIONS}")
+		INTERNAL_ADD_RELEASE_DEFINITION("${${ad_name}_DEPENDENT_RELEASE_DEFINITIONS}")
+	
+	ELSE()
+		MESSAGE(STATUS "WARNING: Required package '${ad_name}' was not found.")
+		MESSAGE(STATUS "WARNING: Build of '${CURRENT_MODULE_NAME}' was disabled.")
+		MESSAGE(STATUS "WARNING: Install package '${ad_name}' to enable build of '${CURRENT_MODULE_NAME}'.")
+		SET(${CURRENT_MODULE_NAME}_BUILD_ENABLED 0)
+	ENDIF()
+	
+	
+	#SET(${CURRENT_MODULE_NAME}_DEPENDENCIES ${${CURRENT_MODULE_NAME}_DEPENDENCIES} ${ad_name})
+ENDMACRO(INTERNAL_ADD_DEPENDENCY)
+
+MACRO(INTERNAL_LINK_LIBRARY ill_library)
+
+	#LIST(FIND GLOBAL_LIBRARIES ${ill_library} FOUND_LIBRARY)
+	
+	#IF(${FOUND_LIBRARY} EQUAL -1)
+	#	MESSAGE(FATAL_ERROR "You tried to link against the unknown lib ${ill_library}")
+	#ENDIF()
+	SET(${CURRENT_MODULE_NAME}_LIBRARIES ${${CURRENT_MODULE_NAME}_LIBRARIES} ${ill_library} ${ARGN} "" CACHE INTERNAL "")
+ENDMACRO(INTERNAL_LINK_LIBRARY)
+
+MACRO(INTERNAL_LINK_LIBRARY_GROUP illg_library)
+	SET(${CURRENT_MODULE_NAME}_LIBRARIES ${${CURRENT_MODULE_NAME}_LIBRARIES} ${illg_library} ${ARGN})
+
+	INTERNAL_GROUP_LINK(${CURRENT_MODULE_NAME}_LIBRARIES ${${CURRENT_MODULE_NAME}_LIBRARIES})
+
+ENDMACRO(INTERNAL_LINK_LIBRARY_GROUP)
+
+MACRO(INTERNAL_GROUP_LINK igl_libs)
+	IF("${TARGET_COMPILER}" STREQUAL "GCC")
+		SET(${igl_libs} "-Wl,--start-group" ${ARGN} "-Wl,--end-group")
+	ENDIF()
+ENDMACRO(INTERNAL_GROUP_LINK)
+
+
+MACRO(INTERNAL_JUST_DOIT)
+	IF(${WITH_${CURRENT_UPPER_MODULE_NAME}} AND ${${CURRENT_MODULE_NAME}_BUILD_ENABLED})
+	
+		INTERNAL_GET_INTERN_INCLUDE_PATH(asl_intern_include_path)
+		
+		INCLUDE_DIRECTORIES(${asl_intern_include_path})
+		
+		SET(jd_collected_dependencies "${${CURRENT_MODULE_NAME}_PACKAGE_LIBS}" "${${CURRENT_MODULE_NAME}_LIBRARIES}")
+		
+		SET(jdi_include_dirs "")
+		FOREACH(dependency ${${CURRENT_MODULE_NAME}_DEPENDENCIES})
+			IF(EXISTS "${PROJECT_SOURCE_DIR}/modules/${dependency}/include")
+				SET(jdi_include_dirs ${jdi_include_dirs} "${PROJECT_SOURCE_DIR}/modules/${dependency}/include")
+			ELSEIF(DEFINED ${dependency}_INCLUDE_DIR)
+				SET(jdi_include_dirs ${jdi_include_dirs} "${${dependency}_INCLUDE_DIR}")
+				SET(GLOBAL_EXTERN_INCLUDE_DIRS ${GLOBAL_EXTERN_INCLUDE_DIRS} "${${dependency}_INCLUDE_DIR}" CACHE INTERNAL "collect extern include dirs")
+			ELSE()
+				MESSAGE(FATAL_ERROR "Added unknown dependency ${dependency}")
+			ENDIF()
+		ENDFOREACH()
+
+		
+		
+		IF(${${CURRENT_MODULE_NAME}_HAS_SOURCE_FILES})
+		
+		#FOREACH(dependency ${${CURRENT_MODULE_NAME}_DEPENDENCIES})
+	#		SET(jd_dependency_linker_dirs ${jd_dependency_linker_dirs} "${${dependency}_LIBRARIES_DIR}")	
+	#	ENDFOREACH()
+		
+#		IF(NOT "${jd_dependency_linker_dirs}" STREQUAL "")
+#			LIST(REMOVE_DUPLICATES jd_dependency_linker_dirs)		
+#		ENDIF()
+		LINK_DIRECTORIES(${GLOBAL_LIB_DIRECTORIES})
+		
+			
+			
+
+			IF(${CURRENT_MODULE_TYPE} STREQUAL "STATIC")
+				SET(UTILS_MODULES_STATIC ${UTILS_MODULES_STATIC} ${CURRENT_MODULE_NAME} CACHE INTERNAL "")
+				ADD_LIBRARY(${CURRENT_MODULE_NAME}
+					STATIC
+					${${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES}
+				)
+				SET(GLOBAL_LIBRARIES ${GLOBAL_LIBRARIES} ${CURRENT_MODULE_NAME}  CACHE INTERNAL "collect all linkable libraries")
+			ELSEIF(${CURRENT_MODULE_TYPE} STREQUAL "DYNAMIC")
+				SET(UTILS_MODULES_DYNAMIC ${UTILS_MODULES_DYNAMIC} ${CURRENT_MODULE_NAME} CACHE INTERNAL "")
+				ADD_LIBRARY(${CURRENT_MODULE_NAME}
+					SHARED
+					${${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES}
+				)
+			ELSEIF(${CURRENT_MODULE_TYPE} STREQUAL "EXE")
+				SET(UTILS_MODULES_EXE ${UTILS_MODULES_EXE} ${CURRENT_MODULE_NAME} CACHE INTERNAL "")
+				ADD_EXECUTABLE(${CURRENT_MODULE_NAME}
+					${${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES}
+				)
+			ENDIF()
+			
+			INTERNAL_ADD_DEBUG_COMPILER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_DEBUG_COMPILER_FLAGS})
+			INTERNAL_ADD_RELEASE_COMPILER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_RELEASE_COMPILER_FLAGS})
+						
+			INTERNAL_ADD_DEBUG_LINKER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_DEBUG_LINKER_FLAGS})
+			INTERNAL_ADD_RELEASE_LINKER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_RELEASE_LINKER_FLAGS})
+			
+			INTERNAL_ADD_DEBUG_DEFINITIONS_TO_TARGET(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_DEBUG_DEFINITIONS})
+			INTERNAL_ADD_RELEASE_DEFINITIONS_TO_TARGET(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_RELEASE_DEFINITIONS})
+			
+			INCLUDE_DIRECTORIES(${jdi_include_dirs})
+			
+
+			IF(NOT "${${CURRENT_MODULE_NAME}_DEPENDENCIES}" STREQUAL "")
+			#	FOREACH(current_dependency ${${CURRENT_MODULE_NAME}_DEPENDENCIES})
+			#		IF((${${current_dependency}_HAS_SOURCE_FILES}) AND NOT( "${${current_dependency}_MODULE_TYPE}" STREQUAL "EXE"))
+			#			SET(jd_collected_dependencies ${jd_collected_dependencies} "${current_dependency}")
+			#		ELSEIF(DEFINED ${current_dependency}_LIBRARIES)
+			#			SET(jd_collected_dependencies ${jd_collected_dependencies} ${current_dependency})
+			#		ENDIF()
+			#	ENDFOREACH()
+				ADD_DEPENDENCIES(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_DEPENDENCIES})
+			ENDIF()
+
+			IF(NOT "${${CURRENT_MODULE_NAME}_LIBRARIES}" STREQUAL "" AND NOT "${CURRENT_MODULE_TYPE}" STREQUAL "STATIC")
+				TARGET_LINK_LIBRARIES(${CURRENT_MODULE_NAME} ${${CURRENT_MODULE_NAME}_LIBRARIES} ${jd_collected_dependencies})
+			ENDIF()
+			
+			SET_TARGET_PROPERTIES(${CURRENT_MODULE_NAME} PROPERTIES LINKER_LANGUAGE CXX)
+		ELSE()
+			ADD_CUSTOM_TARGET(${CURRENT_MODULE_NAME} SOURCES
+					${${CURRENT_UPPER_MODULE_NAME}_MODULE_SOURCE_FILES}
+				)
+		ENDIF()
+		
+		IF(NOT "${${CURRENT_MODULE_NAME}_TEST_FILES}" STREQUAL "")
+			SET(UTILS_MODULES_TESTS ${UTILS_MODULES_TESTS} ${CURRENT_MODULE_NAME}Test CACHE INTERNAL "")
+
+			SET(EXTERNAL_PACKAGE_LINK_DIRECTORIES "")
+			FOREACH(current_dependency ${${CURRENT_MODULE_NAME}_DEPENDENCIES})
+				IF(${${current_dependency}_HAS_SOURCE_FILES})
+					SET(jd_collected_dependencies ${jd_collected_dependencies} ${current_dependency})
+				ENDIF()
+				IF(DEFINED ${current_dependency}_LIBRARIES_DIR)
+					SET(EXTERNAL_PACKAGE_LINK_DIRECTORIES ${EXTERNAL_PACKAGE_LINK_DIRECTORIES} "${${current_dependency}_LIBRARIES_DIR}")
+				ENDIF()
+			ENDFOREACH()
+			
+			IF(NOT "${jd_collected_dependencies}" STREQUAL "")
+				list(REMOVE_DUPLICATES jd_collected_dependencies)
+			ENDIF()
+			
+			IF(${BUILD_UNITTESTS})
+			
+				IF(${BUILD_GLOBAL_TEST_EXECUTABLE})
+					#ADD_LIBRARY(${CURRENT_MODULE_NAME}Test STATIC ${${CURRENT_MODULE_NAME}_TEST_FILES})
+					SET(GLOBAL_TEST_INCLUDE_DIRECTORIES ${GLOBAL_TEST_INCLUDE_DIRECTORIES} ${jdi_include_dirs} ${asl_intern_include_path} CACHE INTERNAL "collect test include directories")
+					SET(GLOBAL_TEST_LIBS ${GLOBAL_TEST_LIBS} ${jd_collected_dependencies} CACHE INTERNAL "collect test libs")
+					IF(${${CURRENT_MODULE_NAME}_HAS_SOURCE_FILES})
+						SET(GLOBAL_TEST_LIBS ${GLOBAL_TEST_LIBS} ${CURRENT_MODULE_NAME} CACHE INTERNAL "collect test libs")
+					ENDIF()
+					
+					SET(GLOBAL_TEST_SOURCE ${GLOBAL_TEST_SOURCE} ${${CURRENT_MODULE_NAME}_TEST_FILES} CACHE INTERNAL "collect test source")
+					SET(GLOBAL_TEST_LINKER_DIRECTORIES ${GLOBAL_TEST_LINKER_DIRECTORIES} "${EXTERNAL_PACKAGE_LINK_DIRECTORIES}" CACHE INTERNAL "collect test linker directories")
+					
+					SET(GLOBAL_TEST_DEBUG_COMPILER_FLAGS ${GLOBAL_TEST_DEBUG_COMPILER_FLAGS} ${${CURRENT_MODULE_NAME}_DEBUG_COMPILER_FLAGS} CACHE INTERNAL "collect test compiler flags")
+					SET(GLOBAL_TEST_RELEASE_COMPILER_FLAGS ${GLOBAL_TEST_RELEASE_COMPILER_FLAGS} ${${CURRENT_MODULE_NAME}_RELEASE_COMPILER_FLAGS} CACHE INTERNAL "collect test compiler flags")
+										
+					SET(GLOBAL_TEST_DEBUG_LINKER_FLAGS ${GLOBAL_TEST_DEBUG_LINKER_FLAGS} ${${CURRENT_MODULE_NAME}_DEBUG_LINKER_FLAGS} CACHE INTERNAL "collect test linker flags")
+					SET(GLOBAL_TEST_RELEASE_LINKER_FLAGS ${GLOBAL_TEST_RELEASE_LINKER_FLAGS} ${${CURRENT_MODULE_NAME}_RELEASE_LINKER_FLAGS} CACHE INTERNAL "collect test linker flags")
+					
+					SET(GLOBAL_TEST_DEBUG_DEFINITIONS ${GLOBAL_TEST_DEBUG_DEFINITIONS} ${${CURRENT_MODULE_NAME}_DEBUG_DEFINITIONS} CACHE INTERNAL "collect test definitions")
+					SET(GLOBAL_TEST_RELEASE_DEFINITIONS ${GLOBAL_TEST_RELEASE_DEFINITIONS} ${${CURRENT_MODULE_NAME}_RELEASE_DEFINITIONS} CACHE INTERNAL "collect test definitions")
+
+				ELSE()
+				
+					IF(${${CURRENT_MODULE_NAME}_HAS_SOURCE_FILES})
+						SET(jd_collected_dependencies ${jd_collected_dependencies} ${CURRENT_MODULE_NAME})
+					ENDIF()
+
+					INTERNAL_GET_TEST_PATH(jd_test_path)
+					SET(${CURRENT_MODULE_NAME}_TEST_MAIN "")
+					IF(EXISTS "${jd_test_path}/main.cpp")
+						SET(${CURRENT_MODULE_NAME}_TEST_MAIN "${jd_test_path}/main.cpp")
+					ELSE()
+						SET(jd_collected_dependencies "${jd_collected_dependencies}" gtest_main gmock_main)
+					ENDIF()
+
+					LINK_DIRECTORIES(${GoogleTest_LIBRARIES_DIR} ${GoogleMock_LIBRARIES_DIR} ${EXTERNAL_PACKAGE_LINK_DIRECTORIES})
+					ADD_EXECUTABLE(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_TEST_FILES} ${${CURRENT_MODULE_NAME}_TEST_MAIN})
+
+					INTERNAL_ADD_DEBUG_COMPILER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_DEBUG_COMPILER_FLAGS})
+					INTERNAL_ADD_RELEASE_COMPILER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_RELEASE_COMPILER_FLAGS})
+					
+					INTERNAL_ADD_DEBUG_LINKER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_DEBUG_LINKER_FLAGS})
+					INTERNAL_ADD_RELEASE_LINKER_FLAGS_TO_TARGET(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_RELEASE_LINKER_FLAGS})
+					
+					INTERNAL_ADD_DEBUG_DEFINITIONS_TO_TARGET(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_DEBUG_DEFINITIONS})
+					INTERNAL_ADD_RELEASE_DEFINITIONS_TO_TARGET(${CURRENT_MODULE_NAME}Test ${${CURRENT_MODULE_NAME}_RELEASE_DEFINITIONS})
+					
+					INCLUDE_DIRECTORIES(${GoogleTest_INCLUDE_DIR} ${GoogleMock_INCLUDE_DIR} ${jdi_include_dirs})
+					MESSAGE(STATUS "${CURRENT_MODULE_NAME} contains unit tests, building ${CURRENT_MODULE_NAME}Test")
+
+					INTERNAL_GROUP_LINK(jd_collected_dependencies ${jd_collected_dependencies})
+
+					TARGET_LINK_LIBRARIES(${CURRENT_MODULE_NAME}Test ${GoogleMock_LIBRARIES} ${GoogleTest_LIBRARIES} ${jd_collected_dependencies})
+					ADD_DEPENDENCIES(${CURRENT_MODULE_NAME}Test GoogleMock ${CURRENT_MODULE_NAME})
+					
+				ENDIF()
+				
+			ENDIF()
+
+		ENDIF()
+		
+		# copy header files
+		
+		IF(EXISTS "${${CURRENT_MODULE_NAME}_DIR}/include/${CURRENT_MODULE_NAME}")
+			INSTALL(DIRECTORY ${${CURRENT_MODULE_NAME}_DIR}/include/${CURRENT_MODULE_NAME} DESTINATION "${CMAKE_HEADER_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}" PATTERN ".svn" EXCLUDE)
+		ENDIF()
+
+		# copy resource files
+		
+		FILE(GLOB_RECURSE jdi_ressource_files "${${CURRENT_MODULE_NAME}_DIR}/res/*.*")
+		FILE(GLOB_RECURSE jdi_exclude_files "${${CURRENT_MODULE_NAME}_DIR}/res/.svn/*")
+		IF(NOT "${jdi_exclude_files}" STREQUAL "")
+			LIST(REMOVE_ITEM jdi_ressource_files ${jdi_exclude_files})
+		ENDIF()
+		INSTALL(FILES ${jdi_ressource_files} DESTINATION "${CMAKE_RESOURCE_OUTPUT_DIRECTORY}/${CURRENT_MODULE_NAME}")
+			
+		# copy doc files
+			
+		FILE(GLOB_RECURSE jdi_doc_files "${${CURRENT_MODULE_NAME}_DIR}/doc/*.*")
+		FILE(GLOB_RECURSE jdi_exclude_files "${${CURRENT_MODULE_NAME}_DIR}/doc/.svn/*")
+		IF(NOT "${jdi_exclude_files}" STREQUAL "")
+			LIST(REMOVE_ITEM jdi_doc_files ${jdi_exclude_files})
+		ENDIF()
+		INSTALL(FILES ${jdi_doc_files} DESTINATION "${CMAKE_DOC_OUTPUT_DIRECTORY}/${CURRENT_MODULE_NAME}")
+		
+		IF(NOT "${${CURRENT_MODULE_NAME}_INSTALL_FILES}" STREQUAL "")
+			INSTALL(FILES ${${CURRENT_MODULE_NAME}_INSTALL_FILES} DESTINATION "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/\${BUILD_TYPE}")
+		ENDIF()
+				
+	ENDIF()
+ENDMACRO(INTERNAL_JUST_DOIT)
+
+#MACRO(INTERNAL_ADD_COMPILER_FLAGS_TO_TARGET acf_target acf_flags)
+#	SET_TARGET_PROPERTIES(${acf_target} PROPERTIES COMPILE_FLAGS "${acf_flags}" )
+#ENDMACRO(INTERNAL_ADD_COMPILER_FLAGS_TO_TARGET)
+
+#MACRO(INTERNAL_ADD_LINKER_FLAGS_TO_TARGET alf_target alf_flags)
+#	SET_TARGET_PROPERTIES(${alf_target} PROPERTIES LINK_FLAGS "${alf_flags}" )
+#ENDMACRO(INTERNAL_ADD_LINKER_FLAGS_TO_TARGET)
+
+#MACRO(INTERNAL_ADD_DEFINITIONS_TO_TARGET adt_target adt_definitions)
+#	SET_TARGET_PROPERTIES(${adt_target} PROPERTIES COMPILE_DEFINITIONS "${adt_definitions}" )
+#ENDMACRO(INTERNAL_ADD_DEFINITIONS_TO_TARGET)
+
+MACRO(INTERNAL_ADD_DEBUG_COMPILER_FLAGS_TO_TARGET acf_target)
+	INTERNAL_LIST_TO_STRING("${ARGN}" acf_flags)
+	SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${acf_flags}")
+	SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${acf_flags}")
+ENDMACRO(INTERNAL_ADD_DEBUG_COMPILER_FLAGS_TO_TARGET)
+
+MACRO(INTERNAL_ADD_DEBUG_LINKER_FLAGS_TO_TARGET alf_target)
+	SET_TARGET_PROPERTIES(${alf_target} PROPERTIES LINK_FLAGS_DEBUG "${ARGN}" )
+ENDMACRO(INTERNAL_ADD_DEBUG_LINKER_FLAGS_TO_TARGET)
+
+MACRO(INTERNAL_ADD_DEBUG_DEFINITIONS_TO_TARGET adt_target )
+	SET_TARGET_PROPERTIES(${adt_target} PROPERTIES COMPILE_DEFINITIONS_DEBUG "${ARGN}" )
+ENDMACRO(INTERNAL_ADD_DEBUG_DEFINITIONS_TO_TARGET)
+
+MACRO(INTERNAL_ADD_RELEASE_COMPILER_FLAGS_TO_TARGET acf_target)
+	INTERNAL_LIST_TO_STRING("${ARGN}" acf_flags)
+	SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${acf_flags}")
+	SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${acf_flags}")
+ENDMACRO(INTERNAL_ADD_RELEASE_COMPILER_FLAGS_TO_TARGET)
+
+MACRO(INTERNAL_ADD_RELEASE_LINKER_FLAGS_TO_TARGET alf_target )
+	SET_TARGET_PROPERTIES(${alf_target} PROPERTIES LINK_FLAGS_RELEASE "${ARGN}" )
+ENDMACRO(INTERNAL_ADD_RELEASE_LINKER_FLAGS_TO_TARGET)
+
+MACRO(INTERNAL_ADD_RELEASE_DEFINITIONS_TO_TARGET adt_target )
+	SET_TARGET_PROPERTIES(${adt_target} PROPERTIES COMPILE_DEFINITIONS_RELEASE "${ARGN}" )
+ENDMACRO(INTERNAL_ADD_RELEASE_DEFINITIONS_TO_TARGET)
+
+
+MACRO(INTERNAL_REPORT_MODULE)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "TYPE MODULES" RM)
+	MESSAGE(STATUS)
+	MESSAGE("Building ${RM_TYPE} modules:")
+	MESSAGE(STATUS)
+	FOREACH(r_module ${RM_MODULES})
+		MESSAGE(STATUS "${r_module}")
+	ENDFOREACH()
+	MESSAGE(STATUS)
+ENDMACRO(INTERNAL_REPORT_MODULE)
+
+
+MACRO(INTERNAL_REPORT)
+	MESSAGE(STATUS)
+	MESSAGE(STATUS "-------------------------------------------------------------------")
+	MESSAGE(STATUS "------------------- Configuration report begin --------------------")
+	MESSAGE(STATUS "-------------------------------------------------------------------")
+	
+	IF(NOT "${UTILS_MODULES_STATIC}" STREQUAL "")
+		INTERNAL_REPORT_MODULE(TYPE static MODULES ${UTILS_MODULES_STATIC})
+		MESSAGE(STATUS "-------------------------------------------------------------------")
+	ENDIF()
+	
+	IF(NOT "${UTILS_MODULES_DYNAMIC}" STREQUAL "")
+		INTERNAL_REPORT_MODULE(TYPE dynamic MODULES ${UTILS_MODULES_DYNAMIC})
+		MESSAGE(STATUS "-------------------------------------------------------------------")
+	ENDIF()
+	
+	IF(NOT "${UTILS_MODULES_EXE}" STREQUAL "")
+		INTERNAL_REPORT_MODULE(TYPE executables MODULES ${UTILS_MODULES_EXE})
+		MESSAGE(STATUS "-------------------------------------------------------------------")
+	ENDIF()
+	
+	IF(NOT "${UTILS_MODULES_TESTS}" STREQUAL "")
+		INTERNAL_REPORT_MODULE(TYPE tests MODULES ${UTILS_MODULES_TESTS})
+		MESSAGE(STATUS "-------------------------------------------------------------------")
+	ENDIF()
+	MESSAGE(STATUS "------------------- Configuration report end ----------------------")
+	MESSAGE(STATUS "-------------------------------------------------------------------")
+	MESSAGE(STATUS)
+ENDMACRO(INTERNAL_REPORT)
+
+
+MACRO(INTERNAL_REMOVE_OPTIONAL_FILES prefix)
+	UNSET(${prefix}_ENABLE CACHE)
+ENDMACRO(INTERNAL_REMOVE_OPTIONAL_FILES)
+
+
+MACRO(INTERNAL_ADD_MODULE_INTERNAL ami_module_name ami_type)
+	MESSAGE("---------------------------------------------------------------------------")
+	MESSAGE(STATUS "Configuring build for ${ami_module_name} (${ami_type})")
+	STRING(TOUPPER ${ami_type} CURRENT_MODULE_TYPE)
+	SET(CURRENT_MODULE_NAME ${ami_module_name})
+	STRING(TOUPPER ${CURRENT_MODULE_NAME} CURRENT_UPPER_MODULE_NAME)
+	SET(${CURRENT_MODULE_NAME}_HAS_SOURCE_FILES 0 CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_MODULE_TYPE "${CURRENT_MODULE_TYPE}" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_BUILD_ENABLED 1)
+	SET(${CURRENT_MODULE_NAME}_COMPILE_FLAGS          "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_DEBUG_COMPILER_FLAGS   "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_RELEASE_COMPILER_FLAGS "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_LINKER_FLAGS           "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_DEBUG_LINKER_FLAGS     "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_RELEASE_LINKER_FLAGS   "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_DEBUG_DEFINITIONS      "" CACHE INTERNAL "")
+    SET(${CURRENT_MODULE_NAME}_RELEASE_DEFINITIONS    "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_DEPENDENCIES           "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_LIBRARIES              "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_INSTALL_FILES          "" CACHE INTERNAL "")
+    SET(${CURRENT_MODULE_NAME}_PACKAGE_LIBS           "" CACHE INTERNAL "")
+	SET(${CURRENT_MODULE_NAME}_FOUND                  1  CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_MODULE_INTERNAL)
+
+
+MACRO(INTERNAL_ADD_INSTALL_FILE iaif_filename)
+	SET(${CURRENT_MODULE_NAME}_INSTALL_FILES ${${CURRENT_MODULE_NAME}_INSTALL_FILES} "${iaif_filename}" CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_INSTALL_FILE)
+
+MACRO(INTERNAL_ADD_MODULE ad_module_name ad_type)
+	INTERNAL_ADD_MODULE_INTERNAL(${ad_module_name} ${ad_type})
+	SET(WITH_${CURRENT_UPPER_MODULE_NAME} 1 CACHE INTERNAL "Use module ${CURRENT_UPPER_MODULE_NAME}")
+ENDMACRO(INTERNAL_ADD_MODULE)
+
+
+MACRO(INTERNAL_ADD_OPTIONAL_MODULE aom_module_name aom_type)
+	INTERNAL_ADD_MODULE_INTERNAL(${aom_module_name} ${aom_type})
+	SET(WITH_${CURRENT_UPPER_MODULE_NAME} 1 CACHE BOOL "Use module ${CURRENT_UPPER_MODULE_NAME}")
+ENDMACRO(INTERNAL_ADD_OPTIONAL_MODULE)
+
+
+MACRO(INTERNAL_ADD_COMPILER_FLAG aicf_compiler_flag)
+	INTERNAL_ADD_DEBUG_COMPILER_FLAG(${aicf_compiler_flag})
+	INTERNAL_ADD_RELEASE_COMPILER_FLAG(${aicf_compiler_flag})
+ENDMACRO(INTERNAL_ADD_COMPILER_FLAG)
+
+MACRO(INTERNAL_ADD_DEBUG_COMPILER_FLAG aidcf_compiler_flag)
+	SET(${CURRENT_MODULE_NAME}_DEBUG_COMPILER_FLAGS ${${CURRENT_MODULE_NAME}_DEBUG_COMPILER_FLAGS} ${aidcf_compiler_flag} CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_DEBUG_COMPILER_FLAG)
+
+MACRO(INTERNAL_ADD_RELEASE_COMPILER_FLAG iarcf_compiler_flag)
+	SET(${CURRENT_MODULE_NAME}_RELEASE_COMPILER_FLAGS ${${CURRENT_MODULE_NAME}_RELEASE_COMPILER_FLAGS} ${iarcf_compiler_flag} CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_RELEASE_COMPILER_FLAG)
+
+
+
+MACRO(INTERNAL_ADD_DEFINITION iad_definition)
+	INTERNAL_ADD_RELEASE_DEFINITION("${iad_definition}")
+	INTERNAL_ADD_DEBUG_DEFINITION("${iad_definition}")
+ENDMACRO(INTERNAL_ADD_DEFINITION)
+
+MACRO(INTERNAL_ADD_DEBUG_DEFINITION iadd_definition)
+	SET(${CURRENT_MODULE_NAME}_DEBUG_DEFINITIONS "${${CURRENT_MODULE_NAME}_DEBUG_DEFINITIONS}" ${iadd_definition} CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_DEBUG_DEFINITION)
+
+MACRO(INTERNAL_ADD_RELEASE_DEFINITION iard_definition)
+	SET(${CURRENT_MODULE_NAME}_RELEASE_DEFINITIONS "${${CURRENT_MODULE_NAME}_RELEASE_DEFINITIONS}" ${iard_definition} CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_RELEASE_DEFINITION)
+
+#MACRO(INTERNAL_ADD_DEBUG_COMPILER_FLAG adcf_compiler_flag)
+#	SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} ${adcf_compiler_flag}")
+#	SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${adcf_compiler_flag}")
+#ENDMACRO(INTERNAL_ADD_DEBUG_COMPILER_FLAG)
+
+
+#MACRO(INTERNAL_ADD_RELEASE_COMPILER_FLAG arcf_compiler_flag)
+#SET(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${arcf_compiler_flag}")
+#	SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${arcf_compiler_flag}")
+#ENDMACRO(INTERNAL_ADD_RELEASE_COMPILER_FLAG)
+
+
+MACRO(INTERNAL_ADD_LINKER_FLAG ialf_linker_flag)
+	INTERNAL_ADD_DEBUG_LINKER_FLAG(${ialf_linker_flag})
+	INTERNAL_ADD_RELEASE_LINKER_FLAG(${ialf_linker_flag})
+	#SET(${CURRENT_MODULE_NAME}_LINKER_FLAGS ${${CURRENT_MODULE_NAME}_LINKER_FLAGS} ${ad_linker_flag} CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_LINKER_FLAG)
+
+MACRO(INTERNAL_ADD_DEBUG_LINKER_FLAG aadl_linker_flag)
+	SET(${CURRENT_MODULE_NAME}_DEBUG_LINKER_FLAGS "${${CURRENT_MODULE_NAME}_DEBUG_LINKER_FLAGS} ${aadl_linker_flag}" CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_DEBUG_LINKER_FLAG)
+
+MACRO(INTERNAL_ADD_RELEASE_LINKER_FLAG iarl_linker_flag)
+	SET(${CURRENT_MODULE_NAME}_RELEASE_LINKER_FLAGS "${${CURRENT_MODULE_NAME}_RELEASE_LINKER_FLAGS} ${iarl_linker_flag}" CACHE INTERNAL "")
+ENDMACRO(INTERNAL_ADD_RELEASE_LINKER_FLAG)
+
+
+
+MACRO(INTERNAL_FINALIZE)
+	INTERNAL_BUILD_UNIT_TESTS()
+	list(REMOVE_DUPLICATES GLOBAL_EXTERN_INCLUDE_DIRS)
+
+	#FILE(WRITE "${CMAKE_CMAKE_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}.cmake" "SET(${CMAKE_PROJECT_NAME}_INCLUDE_DIR \"${GLOBAL_EXTERN_INCLUDE_DIRS} ${CMAKE_INSTALL_PREFIX}/${CMAKE_HEADER_OUTPUT_DIRECTORY}/${CMAKE_PROJECT_NAME}\")")
+	
+	REPORT()
+ENDMACRO(INTERNAL_FINALIZE)
+
+MACRO(INTERNAL_BUILD_UNIT_TESTS)
+	IF(${BUILD_GLOBAL_TEST_EXECUTABLE} AND NOT "${GLOBAL_TEST_SOURCE}" STREQUAL "")
+		#SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/deliverable/bin")
+		#ADD_DEBUG_COMPILER_FLAG("/MTd")
+		#ADD_RELEASE_COMPILER_FLAG("/MT")
+		
+		LINK_DIRECTORIES(${GoogleTest_LIBRARIES_DIR} ${GoogleMock_LIBRARIES_DIR} ${GLOBAL_TEST_LINKER_DIRECTORIES})
+		message("global include ${GLOBAL_TEST_INCLUDE_DIRECTORIES}")
+		INCLUDE_DIRECTORIES(${GoogleTest_INCLUDE_DIR} ${GoogleMock_INCLUDE_DIR} ${GLOBAL_TEST_INCLUDE_DIRECTORIES})
+		MESSAGE(STATUS "Global unit test executable enabled, building Test")
+		ADD_EXECUTABLE(Test ${GLOBAL_TEST_SOURCE})
+		
+		INTERNAL_ADD_DEBUG_COMPILER_FLAGS_TO_TARGET(Test ${GLOBAL_TEST_DEBUG_COMPILER_FLAGS})
+		INTERNAL_ADD_RELEASE_COMPILER_FLAGS_TO_TARGET(Test ${GLOBAL_TEST_RELEASE_COMPILER_FLAGS})
+		
+		INTERNAL_ADD_DEBUG_LINKER_FLAGS_TO_TARGET(Test ${GLOBAL_TEST_DEBUG_LINKER_FLAGS})
+		INTERNAL_ADD_RELEASE_LINKER_FLAGS_TO_TARGET(Test ${GLOBAL_TEST_RELEASE_LINKER_FLAGS})
+		
+		INTERNAL_ADD_DEBUG_DEFINITIONS_TO_TARGET(Test ${GLOBAL_TEST_DEBUG_DEFINITIONS})
+		INTERNAL_ADD_RELEASE_DEFINITIONS_TO_TARGET(Test ${GLOBAL_TEST_RELEASE_DEFINITIONS})
+
+		INTERNAL_GROUP_LINK(GLOBAL_TEST_LIBS ${GLOBAL_TEST_LIBS})
+
+		TARGET_LINK_LIBRARIES(Test ${GLOBAL_TEST_LIBS} ${GoogleMock_LIBRARIES} ${GoogleTest_LIBRARIES} gtest_main gmock_main)
+		SET_TARGET_PROPERTIES(Test PROPERTIES LINKER_LANGUAGE CXX)
+	ENDIF()
+ENDMACRO(INTERNAL_BUILD_UNIT_TESTS)
+
+
+MACRO(INTERNAL_REQUIRED_PACKAGE pkg_name)
+	MESSAGE(STATUS "${CURRENT_MODULE_NAME} requires package ${pkg_name}")
+
+	SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
+
+	IF(NOT "${pkg_name}_FOUND" AND EXISTS "${CMAKE_MODULE_PATH}/Find${pkg_name}.cmake")
+
+		find_package("${pkg_name}" REQUIRED)
+
+                SET( ${pkg_name}}_FOUND "NO" )
+                IF(DEFINED ${pkg_name}_INCLUDE_DIRS)
+                    SET( ${pkg_name}_FOUND "YES" )
+
+                    MARK_AS_ADVANCED(
+                                      ${pkg_name}_INCLUDE_DIRS
+                                      ${pkg_name}_LIBRARIES
+                                    )
+	
+	        ENDIF()
+        ENDIF()
+
+	#INTERNAL_ADD_DEPENDENCY(${pkg_name})
+	
+        IF("${pkg_name}_FOUND")
+
+		INCLUDE_DIRECTORIES(${${pkg_name}_INCLUDE_DIRS})
+		SET(${CURRENT_MODULE_NAME}_PACKAGE_LIBS ${${CURRENT_MODULE_NAME}_PACKAGE_LIBS} ${${pkg_name}_LIBRARIES})
+		
+	#	INTERNAL_ADD_DEFINITION("${${pkg_name}_DEPENDENT_DEFINITIONS}")
+	
+	ELSE()
+		MESSAGE(STATUS "WARNING: Required package '${pkg_name}' was not found.")
+		MESSAGE(STATUS "WARNING: Build of '${CURRENT_MODULE_NAME}' was disabled.")
+		MESSAGE(STATUS "WARNING: Install package '${pkg_name}' to enable build of '${CURRENT_MODULE_NAME}'.")
+		SET(${CURRENT_MODULE_NAME}_BUILD_ENABLED 0)
+	ENDIF()
+
+ENDMACRO(INTERNAL_REQUIRED_PACKAGE)
+
+
+MACRO(INTERNAL_OPTIONAL_PACKAGE pkg_name)
+	MESSAGE(STATUS "${CURRENT_MODULE_NAME} optionally requires package ${pkg_name}")
+
+	SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules/)
+	
+	find_package(${pkg_name} REQUIRED)
+	IF(${pkg_name}_FOUND)
+		INCLUDE_DIRECTORIES(${${pkg_name}_INCLUDE_DIR})
+		SET(${CURRENT_MODULE_NAME}_PACKAGE_LIBS ${${CURRENT_MODULE_NAME}_PACKAGE_LIBS} ${${pkg_name}_LIBRARIES} CACHE INTERNAL "")
+	ELSE(${pkg_name}_FOUND)
+		MESSAGE(STATUS "INFO: Optional package '${pkg_name}' was not found.")
+	ENDIF(${pkg_name}_FOUND)
+ENDMACRO(INTERNAL_OPTIONAL_PACKAGE)
+
+
+MACRO(INTERNAL_INSTALL_HEADER_FILES ihf_header_file_path)
+	INSTALL(DIRECTORY ${PROJECT_SOURCE_DIR}/modules/${CURRENT_MODULE_NAME}/include/${CURRENT_MODULE_NAME}/
+	        DESTINATION ${ihf_header_file_path}
+	        FILES_MATCHING
+	        PATTERN ".*" EXCLUDE)
+ENDMACRO(INTERNAL_INSTALL_HEADER_FILES)
+
+
+MACRO(INTERNAL_INSTALL_MODULE)
+
+	IF(${WITH_${CURRENT_UPPER_MODULE_NAME}} AND ${${CURRENT_MODULE_NAME}_BUILD_ENABLED})
+	
+		INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "HEADERS EXECUTABLE LIBRARY" INSTALL_PATH)
+	
+		IF(${INSTALL_PATH_HEADERS_FOUND})
+			MESSAGE(STATUS "Install header files to ${INSTALL_PATH_HEADERS}")
+			INTERNAL_INSTALL_HEADER_FILES(${INSTALL_PATH_HEADERS})
+		ENDIF(${INSTALL_PATH_HEADERS_FOUND})
+	
+		IF(${INSTALL_PATH_EXECUTABLE_FOUND})
+			MESSAGE(STATUS "Install executable files to ${INSTALL_PATH_EXECUTABLE}")
+			SET(INSTALL_COMMAND RUNTIME DESTINATION ${INSTALL_PATH_EXECUTABLE})
+		ENDIF(${INSTALL_PATH_EXECUTABLE_FOUND})
+	
+		IF(${INSTALL_PATH_LIBRARY_FOUND})
+			MESSAGE(STATUS "Install library files to ${INSTALL_PATH_LIBRARY}")
+			SET(INSTALL_COMMAND ${INSTALL_COMMAND} LIBRARY DESTINATION ${INSTALL_PATH_LIBRARY})
+			SET(INSTALL_COMMAND ${INSTALL_COMMAND} ARCHIVE DESTINATION ${INSTALL_PATH_LIBRARY})
+		ENDIF(${INSTALL_PATH_LIBRARY_FOUND})
+	
+		IF(NOT "${INSTALL_COMMAND}" STREQUAL "")
+			INSTALL(TARGETS ${CURRENT_MODULE_NAME} LIBRARY DESTINATION ${INSTALL_COMMAND})
+		ENDIF(NOT "${INSTALL_COMMAND}" STREQUAL "")
+		
+	ENDIF()
+	
+ENDMACRO(INTERNAL_INSTALL_MODULE)
+
+
+MACRO(INTERNAL_INSTALL_RESOURCES)
+	IF(${WITH_${CURRENT_UPPER_MODULE_NAME}} AND ${${CURRENT_MODULE_NAME}_BUILD_ENABLED})
+		INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "FILES DESTINATION" RES)
+		MESSAGE(STATUS "install resource files to ${RES_DESTINATION}")
+		INSTALL(FILES ${RES_FILES} DESTINATION ${RES_DESTINATION})
+	ENDIF()
+ENDMACRO(INTERNAL_INSTALL_RESOURCES)
+
+MACRO(INTERNAL_LIST_TO_STRING ilts_input ilts_output)
+	STRING(REGEX REPLACE ";" " " ${ilts_output} "${ilts_input}")
+ENDMACRO(INTERNAL_LIST_TO_STRING)
+
+MACRO(INTERNAL_ADD_EXTERNAL_LIBRARY ial_name)
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "INCLUDE_DIRS LIBRARY_DIRS LIBNAMES DEPENDENT_DEFINITIONS DEPENDENT_DEBUG_DEFINITIONS DEPENDENT_RELEASE_DEFINITIONS" IAL)
+	
+	SET(${ial_name}_INCLUDE_DIR "")
+			
+	FOREACH(ial_include_dir ${IAL_INCLUDE_DIRS})
+		SET(${ial_name}_INCLUDE_DIR ${${ial_name}_INCLUDE_DIR} "${ial_include_dir}")
+	ENDFOREACH()
+			
+	SET(${ial_name}_LIBRARIES_DIR "")
+	FOREACH(ial_library_dir ${IAL_LIBRARY_DIRS})
+		SET(${ial_name}_LIBRARIES_DIR ${${ial_name}_LIBRARIES_DIR} "${ial_library_dir}")
+	ENDFOREACH()
+			
+	SEPARATE_ARGUMENTS(IAL_LIBNAMES)
+			
+	SET(${ial_name}_LIBRARIES ${IAL_LIBNAMES})
+	SET(${ial_name}_DEPENDENT_DEBUG_DEFINITIONS "${IAL_DEPENDENT_DEFINITIONS}" "${IAL_DEPENDENT_DEBUG_DEFINITIONS}")
+	SET(${ial_name}_DEPENDENT_RELEASE_DEFINITIONS "${IAL_DEPENDENT_DEFINITIONS}" "${IAL_DEPENDENT_RELEASE_DEFINITIONS}")
+	SET(${ial_name}_FOUND 1)
+	SET(${ial_name}_INTERNAL 1)
+	
+	MARK_AS_ADVANCED(
+		${ial_name}_INCLUDE_DIR
+		${ial_name}_LIBRARIES_DIR
+		${ial_name}_LIBRARIES
+		${ial_name}_DEPENDENT_DEBUG_DEFINITIONS
+		${ial_name}_DEPENDENT_RELEASE_DEFINITIONS
+		${ial_name}_FOUND
+		${ial_name}_INTERNAL
+	)
+	
+	#SET(GLOBAL_INCLUDE_DIRECTORIES ${GLOBAL_INCLUDE_DIRECTORIES} ${${ial_name}_INCLUDE_DIR}   CACHE INTERNAL "collect include directories")
+	SET(GLOBAL_LIB_DIRECTORIES     ${GLOBAL_LIB_DIRECTORIES}     ${${ial_name}_LIBRARIES_DIR} CACHE INTERNAL "collect lib directories")
+	SET(GLOBAL_LIBRARIES           ${GLOBAL_LIBRARIES}           ${${ial_name}_LIBRARIES}     CACHE INTERNAL "collect all linkable libraries")
+	
+
+	#message("include dirs ${${ial_name}_INCLUDE_DIR}")
+	#message("library dirs ${${ial_name}_LIBRARIES_DIR}")
+	#message("libraries ${${ial_name}_LIBRARIES}")
+	#message("depandent defs ${${ial_name}_DEPENDENT_DEFINITIONS}")
+		
+ENDMACRO(INTERNAL_ADD_EXTERNAL_LIBRARY)
+
+MACRO(INTERNAL_ADD_CMAKE_PROJECT iaap_name)
+
+	INTERNAL_ARGUMENT_SPLITTER("${ARGN}" "LIBNAMES LIBDIRS INCLUDE_DIRS BINARY_INCLUDE_DIRS ABSOLUTE_INCLUDE_DIRS URL CHECKSUM SOURCE_DIR CMAKE_ARGUMENTS DEPENDENT_DEFINITIONS DEPENDENT_DEBUG_DEFINITIONS DEPENDENT_RELEASE_DEFINITIONS INSTALL CONFIG_FILE" IAAP)
+				
+	IF(NOT "${IAAP_URL}" STREQUAL "")
+	
+		SET(iaap_method DOWNLOAD_DIR "${THIRD_PARTY_DIR}/${iaap_name}"
+						URL          "${IAAP_URL}"
+						URL_MD5      "${IAAP_CHECKSUM}")
+						
+	ELSEIF(NOT "${IAAP_SOURCE_DIR}" STREQUAL "")
+	
+		INTERNAL_LIST_TO_STRING("${IAAP_SOURCE_DIR}" IAAP_CONVERTED_SOURCE_DIR)
+		SET(IAAP_SOURCE_DIR "${IAAP_CONVERTED_SOURCE_DIR}")
+		SET(iaap_method SOURCE_DIR  "${IAAP_SOURCE_DIR}"
+								     DOWNLOAD_COMMAND "")
+									 
+	ELSEIF(EXISTS "${THIRD_PARTY_DIR}/${iaap_name}")
+	
+		SET(IAAP_SOURCE_DIR "${THIRD_PARTY_DIR}/${iaap_name}")
+		SET(iaap_method SOURCE_DIR "${IAAP_SOURCE_DIR}"
+		                           DOWNLOAD_COMMAND "")
+								   
+	ENDIF()
+	
+	IF(NOT "${iaap_method}" STREQUAL "")
+
+		SET(BUILD_${iaap_name} 1 CACHE BOOL "Use ${iaap_name}")
+		
+		IF(${BUILD_${iaap_name}}) 
+
+			SET(ilts_cmake_arguments "")
+			FOREACH(ilts_cmake_argument ${IAAP_CMAKE_ARGUMENTS})
+				SET(ilts_cmake_arguments ${ilts_cmake_arguments} -D${ilts_cmake_argument})
+			ENDFOREACH()
+			
+			SET(ilts_install_command INSTALL_COMMAND "")
+			IF("${IAAP_INSTALL}" EQUAL 1) 
+				SET(ilts_install_command "")
+			ENDIF()
+			
+			ExternalProject_Add(
+			  ${iaap_name}
+			  PREFIX ${CMAKE_BINARY_DIR}/${iaap_name}
+			  ${iaap_method}
+			  UPDATE_COMMAND ""
+			  CMAKE_ARGS -DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+						 -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE}
+						 -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE}
+						 -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}
+						 -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}
+						 -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+						 -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
+						 -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
+						 -DBUILD_UNITTESTS:BOOLEAN=${BUILD_UNITTESTS}
+						 -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${PROJECT_SOURCE_DIR}/deliverable/${iaap_name}/lib/${TARGET_OS}_${TARGET_ARCH}
+						 -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${PROJECT_SOURCE_DIR}/deliverable/${iaap_name}/lib/${TARGET_OS}_${TARGET_ARCH}
+						#-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${THIRD_PARTY_DIR}/deliverable/${iaap_name}/lib/${TARGET_OS}_${TARGET_ARCH}
+						# -DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${THIRD_PARTY_DIR}/deliverable/${iaap_name}/lib/${TARGET_OS}_${TARGET_ARCH}
+						# -DCMAKE_INSTALL_PREFIX=${THIRD_PARTY_DIR}/deliverable/${iaap_name}
+						-DCMAKE_INSTALL_PREFIX:PATH=${PROJECT_SOURCE_DIR}/deliverable/${iaap_name}/
+						-DBUILD_GLOBAL_TEST_EXECUTABLE:BOOLEAN=${BUILD_GLOBAL_TEST_EXECUTABLE}
+						 ${ilts_cmake_arguments}
+						 "${ilts_install_command}"
+			)
+
+#			SET(${iaap_name}_DIR "${CMAKE_BINARY_DIR}/${iaap_name}")
+			SET(${iaap_name}_DIR "${IAAP_SOURCE_DIR}")
+			
+		SET(iacp_include_dirs "")
+			
+		IF(NOT ${IAAP_URL} STREQUAL "")
+
+			foreach(iaap_include_dir ${IAAP_INCLUDE_DIRS})
+				SET(iacp_include_dirs "${iacp_include_dirs}" "${CMAKE_BINARY_DIR}/${iaap_name}/${iaap_include_dir}")
+			endforeach()
+
+		ELSE()
+
+			foreach(iaap_include_dir ${IAAP_INCLUDE_DIRS})
+				SET(iacp_include_dirs "${iacp_include_dirs}" "${PROJECT_SOURCE_DIR}/deliverable/${iaap_name}/include/${iaap_include_dir}")
+				#SET(${iaap_name}_INCLUDE_DIR "${${iaap_name}_INCLUDE_DIR}" "${CMAKE_INSTALL_PREFIX}/include/${iaap_include_dir}")
+			endforeach()
+			
+			foreach(iaap_include_dir ${IAAP_BINARY_INCLUDE_DIRS})
+				SET(iacp_include_dirs "${iacp_include_dirs}" "${CMAKE_BINARY_DIR}/${iaap_name}/src/${iaap_name}-build/${iaap_include_dir}")
+			endforeach()
+			
+			foreach(iaap_include_dir ${IAAP_ABSOLUTE_INCLUDE_DIRS})
+				SET(iacp_include_dirs "${iacp_include_dirs}" "${iaap_include_dir}")
+			endforeach()
+			
+		ENDIF()
+		
+		
+		INTERNAL_ADD_EXTERNAL_LIBRARY( ${iaap_name} 
+							         INCLUDE_DIRS                  "${iacp_include_dirs}"
+						             LIBRARY_DIRS                  "${PROJECT_SOURCE_DIR}/deliverable/${iaap_name}/lib/${TARGET_OS}_${TARGET_ARCH}" ${IAAP_LIBDIRS}
+							         LIBNAMES                      "${IAAP_LIBNAMES}"
+							         DEPENDENT_DEFINITIONS         "${IAAP_DEPENDENT_DEFINITIONS}"
+									 DEPENDENT_DEBUG_DEFINITIONS   "${IAAP_DEPENDENT_DEBUG_DEFINITIONS}"
+									 DEPENDENT_RELEASE_DEFINITIONS "${IAAP_DEPENDENT_RELEASE_DEFINITIONS}")
+		ENDIF()
+	ENDIF()
+
+	
+ENDMACRO(INTERNAL_ADD_CMAKE_PROJECT)

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/plugins.cmake
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/plugins.cmake?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/plugins.cmake (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/internal/plugins.cmake Thu Aug  2 14:40:08 2012
@@ -0,0 +1,70 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+
+include(ExternalProject)
+
+MESSAGE(---------------------------------------------------------------------------)
+MESSAGE("")
+MESSAGE("Searching for plugins: ")
+MESSAGE("")
+FILE(GLOB_RECURSE ACME_PLUGINS ${ACME_PATH}/plugins/*.cmake)
+FOREACH(plugin ${ACME_PLUGINS})
+	INCLUDE(${plugin})
+	MESSAGE(STATUS "Found acme plugin ${plugin}")
+ENDFOREACH()
+
+FILE(GLOB_RECURSE EXTERN_PLUGINS ${CMAKE_SOURCE_DIR}/cmake/plugins/*.cmake)
+FOREACH(plugin ${EXTERN_PLUGINS})
+	MESSAGE(STATUS "Found internal plugin ${plugin}")
+	GET_FILENAME_COMPONENT(PLUGIN_NAME ${plugin} NAME_WE)
+	STRING(TOUPPER ${PLUGIN_NAME} PLUGIN_NAME)
+	INCLUDE(${plugin})
+ENDFOREACH()
+
+
+#IF(${BUILD_UNITTESTS})
+#	include(ExternalProject)
+#	ExternalProject_Add(
+#		GoogleTest
+#		PREFIX  ${CMAKE_BINARY_DIR}/GoogleTest
+#		DOWNLOAD_DIR ${THIRD_PARTY_DIR}/GoogleTest
+#		URL http://googletest.googlecode.com/files/gtest-1.6.0.zip
+#		URL_MD5 4577b49f2973c90bf9ba69aa8166b786 
+#		CMAKE_ARGS 	-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${THIRD_PARTY_DIR}/libs/gtest
+#					-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${THIRD_PARTY_DIR}/libs/gtest
+#					-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+#		INSTALL_COMMAND ""
+#	) 
+#	SET(GTEST_DIR "${CMAKE_BINARY_DIR}/GoogleTest/src/GoogleTest")
+#	SET(GTEST_INCLUDE_DIR "${GTEST_DIR}/include")
+#	SET(GTEST_LIB_DIR "${THIRD_PARTY_DIR}/libs/gtest")
+#	
+#	ExternalProject_Add(
+#		GoogleMock
+#		PREFIX  ${CMAKE_BINARY_DIR}/GoogleMock
+#		DOWNLOAD_DIR ${THIRD_PARTY_DIR}/GoogleMock
+#		URL http://googlemock.googlecode.com/files/gmock-1.6.0.zip
+#		URL_MD5 f547f47321ca88d3965ca2efdcc2a3c1
+#		CMAKE_ARGS 	-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${THIRD_PARTY_DIR}/libs/gmock
+#					-DCMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${THIRD_PARTY_DIR}/libs/gmock
+#					-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}
+#		INSTALL_COMMAND ""
+#	) 
+#	SET(GMOCK_DIR "${CMAKE_BINARY_DIR}/GoogleMock/src/GoogleMock" )
+#	SET(GMOCK_INCLUDE_DIR "${GMOCK_DIR}/include" )
+#	SET(GMOCK_LIB_DIR "${THIRD_PARTY_DIR}/libs/gmock")
+#	
+#ENDIF(${BUILD_UNITTESTS})

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/plugins/GoogleMock.cmake
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/plugins/GoogleMock.cmake?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/plugins/GoogleMock.cmake (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/plugins/GoogleMock.cmake Thu Aug  2 14:40:08 2012
@@ -0,0 +1,14 @@
+
+IF(NOT ${BUILD_UNITTESTS})
+	UNSET(BUILD_GoogleMock CACHE)
+ELSE()
+	ADD_CMAKE_PROJECT(	GoogleMock 
+						LIBNAMES gmock gtest
+						INCLUDE_DIRS "src/GoogleMock/include" "src/GoogleMock/gtest/include" 
+						URL "http://googlemock.googlecode.com/files/gmock-1.6.0.zip" 
+						CHECKSUM "f547f47321ca88d3965ca2efdcc2a3c1"
+						CMAKE_ARGUMENTS "gtest_force_shared_crt:Bool=1" 
+						)
+
+ENDIF()
+

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Integrity1002_armv7l_Emerald-P-ES1.toolchain
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Integrity1002_armv7l_Emerald-P-ES1.toolchain?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Integrity1002_armv7l_Emerald-P-ES1.toolchain (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Integrity1002_armv7l_Emerald-P-ES1.toolchain Thu Aug  2 14:40:08 2012
@@ -0,0 +1,63 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+
+INCLUDE(CMakeForceCompiler)
+
+# this one is important
+SET(CMAKE_SYSTEM_NAME Integrity)
+
+SET(TARGET_OS Integrity)
+SET(TARGET_ARCH ARMV7L)
+SET(TARGET_COMPILER MULTI)
+
+#set(MAKE_OS "Integrity" CACHE STRING "Defines the target operating system." FORCE)
+SET(CGIDEVICE_NAME "Emerald")
+SET(CGIDEVICE_TARGET_BUILD "ON")
+SET(CGISTUDIO_COMPILER "MULTI")
+
+##### setup for Integrity Multi target compiler
+SET(integrity_cflags_shared "-bsp=emerald-p-evb -os_dir=C:/ghs/int1002 -cpu=cortexa9 -Ospeed -DMQ -DCHECKED_BUILD --link_once_templates -w")
+SET(integrity_cflag_optimizer "-O2")
+
+SET(CMAKE_C_FLAGS "${integrity_cflags_shared}" CACHE STRING "C Flags" FORCE)
+SET(CMAKE_CXX_FLAGS "${integrity_cflags_shared}" CACHE STRING "CXX Flags" FORCE)
+
+SET(CMAKE_C_FLAGS_DEBUG "${integrity_cflags_shared} -G -D_DEBUG" CACHE STRING "C Debug Flags" FORCE)
+SET(CMAKE_CXX_FLAGS_DEBUG "${integrity_cflags_shared} -G -D_DEBUG" CACHE STRING "CXX Debug Flags" FORCE)
+
+#### Change Compiler to MULTI
+SET(INTEGRITY_TOOLCHAIN_PATH "C:\\ghs\\multi524" CACHE PATH "Root path to MULTI tool chain.")
+SET(CMAKE_C_COMPILER "${INTEGRITY_TOOLCHAIN_PATH}/ccintarm.exe")
+SET(CMAKE_CXX_COMPILER "${INTEGRITY_TOOLCHAIN_PATH}/cxintarm.exe")
+
+#### Change other tools in toolchain
+SET(CMAKE_AR "${INTEGRITY_TOOLCHAIN_PATH}/ax.exe" CACHE FILEPATH "MULTI AR" FORCE)
+SET(CMAKE_LINKER "${INTEGRITY_TOOLCHAIN_PATH}/elxr.exe" CACHE FILEPATH "MULTI LINKER" FORCE)
+SET(CMAKE_NM "${INTEGRITY_TOOLCHAIN_PATH}/gnm.exe" CACHE FILEPATH "MULTI NM" FORCE)
+SET(CMAKE_STRIP "${INTEGRITY_TOOLCHAIN_PATH}/gstrip.exe" CACHE FILEPATH "MULTI STRIP" FORCE)
+
+# where is the target environment 
+SET(CMAKE_FIND_ROOT_PATH "C:\\ghs\\int1002\\")
+
+# search for programs in the build host directories
+#SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+# for libraries and headers in the target directories
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+ADD_DEFINITIONS("-DOS_INTEGRITY")
+ADD_DEFINITIONS("-DARCH_ARMV7L")
+

Copied: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_32.toolchain (from r1368489, incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/toolchain/Linux.toolchain)
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_32.toolchain?p2=incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_32.toolchain&p1=incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/toolchain/Linux.toolchain&r1=1368489&r2=1368491&rev=1368491&view=diff
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/toolchain/Linux.toolchain (original)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_32.toolchain Thu Aug  2 14:40:08 2012
@@ -1,30 +1,32 @@
 #
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to you under the Apache License, Version
-# 2.0 (the "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
 #
 
 SET(CMAKE_SYSTEM_NAME Linux)
 SET(CMAKE_SYSTEM_VERSION 1)
 
-SET(TARGET_ARCH Linux)
+SET(TARGET_OS Linux)
+SET(TARGET_ARCH X86_32)
+SET(TARGET_COMPILER GCC)
 
-SET(CMAKE_C_FLAGS "-m32 -DARCH_LINUX")
-SET(CMAKE_CXX_FLAGS "-m32 -DARCH_LINUX")
-
-SET(CMAKE_C_FLAGS_DEBUG "-ggdb -Wall")
+SET(CMAKE_C_FLAGS_DEBUG "-m32 -ggdb -Wall -D_DEBUG")
 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
 
-SET(CMAKE_C_FLAGS_RELEASE "-Wall -O3")
+SET(CMAKE_C_FLAGS_RELEASE "-m32 -Wall -O3 -DNDEBUG")
 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+
+add_definitions("-DOS_LINUX")
+add_definitions("-DARCH_X86_32")

Copied: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_64.toolchain (from r1368489, incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/toolchain/Linux.toolchain)
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_64.toolchain?p2=incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_64.toolchain&p1=incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/toolchain/Linux.toolchain&r1=1368489&r2=1368491&rev=1368491&view=diff
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/toolchain/Linux.toolchain (original)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_X86_64.toolchain Thu Aug  2 14:40:08 2012
@@ -1,30 +1,32 @@
 #
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to you under the Apache License, Version
-# 2.0 (the "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
 #
 
 SET(CMAKE_SYSTEM_NAME Linux)
 SET(CMAKE_SYSTEM_VERSION 1)
 
-SET(TARGET_ARCH Linux)
+SET(TARGET_OS Linux)
+SET(TARGET_ARCH X86_64)
+SET(TARGET_COMPILER GCC)
 
-SET(CMAKE_C_FLAGS "-m32 -DARCH_LINUX")
-SET(CMAKE_CXX_FLAGS "-m32 -DARCH_LINUX")
-
-SET(CMAKE_C_FLAGS_DEBUG "-ggdb -Wall")
+SET(CMAKE_C_FLAGS_DEBUG "-m64 -ggdb -Wall -D_DEBUG")
 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
 
-SET(CMAKE_C_FLAGS_RELEASE "-Wall -O3")
+SET(CMAKE_C_FLAGS_RELEASE "-m64 -Wall -O3 -DNDEBUG")
 SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+
+add_definitions("-DOS_LINUX")
+add_definitions("-DARCH_X86_64")

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_armv7l.toolchain
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_armv7l.toolchain?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_armv7l.toolchain (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/Linux_armv7l.toolchain Thu Aug  2 14:40:08 2012
@@ -0,0 +1,41 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+#
+
+SET(CMAKE_SYSTEM_NAME Linux)
+SET(CMAKE_SYSTEM_VERSION 1)
+
+SET(TARGET_OS Linux)
+SET(TARGET_ARCH ARMV7L)
+SET(TARGET_COMPILER GCC)
+
+SET(CMAKE_C_COMPILER /opt/pb-a8/cross/armv7a/bin/arm-angstrom-linux-gnueabi-gcc)
+SET(CMAKE_CXX_COMPILER /opt/pb-a8/cross/armv7a/bin/arm-angstrom-linux-gnueabi-g++)
+SET(CMAKE_LINKER /opt/pb-a8/cross/armv7a/bin/arm-angstrom-linux-gnueabi-ld)
+
+SET(CMAKE_C_FLAGS_DEBUG "-ggdb -march=armv7-a -mfpu=neon -mfloat-abi=softfp -D_DEBUG")
+SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
+
+SET(CMAKE_C_FLAGS_RELEASE "-O3 -march=armv7-a -mfpu=neon -mfloat-abi=softfp -DNDEBUG")
+SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+
+SET(CMAKE_FIND_ROOT_PATH /opt/pb-a8/staging/armv7a-angstrom-linux-gnueabi)
+
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+add_definitions("-DOS_LINUX")
+add_definitions("-DARCH_ARMV7L")

Added: incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/QNX_X86.toolchain
URL: http://svn.apache.org/viewvc/incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/QNX_X86.toolchain?rev=1368491&view=auto
==============================================================================
--- incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/QNX_X86.toolchain (added)
+++ incubator/etch/trunk/binding-cpp/runtime/lib/capu/cmake/acme/toolchain/QNX_X86.toolchain Thu Aug  2 14:40:08 2012
@@ -0,0 +1,100 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more 
+# contributor license agreements. See the NOTICE file distributed with  
+# this work for additional information regarding copyright ownership. 
+# The ASF licenses this file to you under the Apache License, Version  
+# 2.0 (the "License"); you may not use this file except in compliance  
+# with the License. You may obtain a copy of the License at 
+# 
+# http://www.apache.org/licenses/LICENSE-2.0 
+# 
+# Unless required by applicable law or agreed to in writing, software 
+# distributed under the License is distributed on an "AS IS" BASIS, 
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and 
+# limitations under the License. 
+
+#------------------------------------------------------------------#
+#
+#HOW TO BUILD CAPU FOR QNX:
+#1. set QNX_HOST environment variable to your host's build tools
+#2. set QNX_TARGET environment variable to the qnx target location
+#3. add QNX_HOST/usr/bin to your path
+#   Windows: set PATH=%QNX_HOST%\usr\bin;%PATH%
+#   Linux: export PATH=$QNX_HOST/usr/bin:$PATH
+#4. execute cmake in build-folder:
+#   cmake -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=<path to capu>/cmake/acme/toolchain/QNX_X86.toolchain -DCMAKE_BUILD_TYPE=Debug|Release ..
+#5. make
+#
+#------------------------------------------------------------------#
+
+INCLUDE(CMakeForceCompiler)
+
+SET(CMAKE_SYSTEM_NAME QNX)
+
+SET(TARGET_OS QNX)
+SET(TARGET_ARCH X86_32)
+SET(TARGET_COMPILER GCC)
+
+SET(CMAKE_SYSTEM_PROCESSOR x86)
+
+#set successful exit value on target system
+SET(THREADS_PTHREAD_ARG 0)
+
+#check environment variables
+IF ("$ENV{QNX_HOST}" STREQUAL "")
+	MESSAGE(FATAL_ERROR "QNX_HOST environment variable not found. Please set the variable to your host's build tools")
+ENDIF ()
+IF ("$ENV{QNX_TARGET}" STREQUAL "")
+	MESSAGE(FATAL_ERROR "QNX_TARGET environment variable not found. Please set the variable to the qnx target location")
+ENDIF ()
+
+#set executable suffix	
+IF(CMAKE_HOST_WIN32)
+	SET(HOST_EXECUTABLE_SUFFIX ".exe")
+	#convert windows paths to cmake paths
+	FILE(TO_CMAKE_PATH "$ENV{QNX_HOST}" QNX_HOST)
+	FILE(TO_CMAKE_PATH "$ENV{QNX_TARGET}" QNX_TARGET)
+ELSE()
+	SET(QNX_HOST "$ENV{QNX_HOST}")
+	SET(QNX_TARGET "$ENV{QNX_TARGET}")
+ENDIF()
+
+MESSAGE(STATUS "using QNX_HOST ${QNX_HOST}")
+MESSAGE(STATUS "using QNX_TARGET ${QNX_TARGET}")
+
+#set c compiler and flags
+SET(CMAKE_C_COMPILER ${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-gcc${HOST_EXECUTABLE_SUFFIX})
+SET(CMAKE_C_FLAGS_DEBUG "-g -D_DEBUG")
+SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
+
+#set c++ compiler and flags
+SET(CMAKE_CXX_COMPILER "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-g++${HOST_EXECUTABLE_SUFFIX}")
+SET(CMAKE_CXX_FLAGS_DEBUG "-g -D_DEBUG")
+SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
+
+#set linker
+SET(CMAKE_LINKER       "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ld${HOST_EXECUTABLE_SUFFIX}"     CACHE PATH "QNX Linker Program")
+
+#set make
+SET(CMAKE_MAKE_PROGRAM "${QNX_HOST}/usr/bin/make${HOST_EXECUTABLE_SUFFIX}"                                 CACHE PATH "QNX Make Program")
+
+#set other tools
+SET(CMAKE_AR           "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ar${HOST_EXECUTABLE_SUFFIX}"      CACHE PATH "QNX ar Program")
+SET(CMAKE_NM           "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-nm${HOST_EXECUTABLE_SUFFIX}"      CACHE PATH "QNX nm Program")
+SET(CMAKE_OBJCOPY      "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objcopy${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX objcopy Program")
+SET(CMAKE_OBJDUMP      "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-objdump${HOST_EXECUTABLE_SUFFIX}" CACHE PATH "QNX objdump Program")
+SET(CMAKE_RANLIB       "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-ranlib${HOST_EXECUTABLE_SUFFIX}"  CACHE PATH "QNX ranlib Program")
+SET(CMAKE_SH           "${QNX_HOST}/usr/bin/sh${HOST_EXECUTABLE_SUFFIX}"                                   CACHE PATH "QNX shell Program")
+SET(CMAKE_STRIP        "${QNX_HOST}/usr/bin/nto${CMAKE_SYSTEM_PROCESSOR}-strip${HOST_EXECUTABLE_SUFFIX}"   CACHE PATH "QNX Strip Program")
+
+#set target environment
+SET(CMAKE_FIND_ROOT_PATH "${QNX_TARGET}")
+
+# search for programs in the build host directories only
+SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+
+ADD_DEFINITIONS("-DOS_QNX")
+ADD_DEFINITIONS("-DARCH_X86_32")