Return-Path: X-Original-To: apmail-incubator-celix-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-celix-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A4FE810195 for ; Tue, 1 Jul 2014 06:55:24 +0000 (UTC) Received: (qmail 29444 invoked by uid 500); 1 Jul 2014 06:55:24 -0000 Delivered-To: apmail-incubator-celix-commits-archive@incubator.apache.org Received: (qmail 29417 invoked by uid 500); 1 Jul 2014 06:55:24 -0000 Mailing-List: contact celix-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: celix-dev@incubator.apache.org Delivered-To: mailing list celix-commits@incubator.apache.org Received: (qmail 29404 invoked by uid 99); 1 Jul 2014 06:55:24 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Jul 2014 06:55:24 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 01 Jul 2014 06:55:19 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 4FFD92388860; Tue, 1 Jul 2014 06:54:59 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1606995 - in /incubator/celix/trunk: ./ cmake/ cmake/cmake_celix/ cmake/modules/ framework/ Date: Tue, 01 Jul 2014 06:54:58 -0000 To: celix-commits@incubator.apache.org From: pnoltes@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140701065459.4FFD92388860@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: pnoltes Date: Tue Jul 1 06:54:57 2014 New Revision: 1606995 URL: http://svn.apache.org/r1606995 Log: CELIX-125: update cmake directory. Now a CelixCMake exists and the cmake modules will be installed together with the framwork Added: incubator/celix/trunk/cmake/CMakeCelix.cmake incubator/celix/trunk/cmake/FindAPR.cmake incubator/celix/trunk/cmake/FindCELIX.cmake incubator/celix/trunk/cmake/FindCUnit.cmake incubator/celix/trunk/cmake/FindCppUTest.cmake incubator/celix/trunk/cmake/FindJansson.cmake incubator/celix/trunk/cmake/FindSlp.cmake incubator/celix/trunk/cmake/FindUUID.cmake incubator/celix/trunk/cmake/UseDoxygen.cmake incubator/celix/trunk/cmake/cmake_celix/ incubator/celix/trunk/cmake/cmake_celix/ApacheRat.cmake incubator/celix/trunk/cmake/cmake_celix/CPackConfig-Installation.in incubator/celix/trunk/cmake/cmake_celix/CPackConfig.in incubator/celix/trunk/cmake/cmake_celix/CPackConfigPKG.in incubator/celix/trunk/cmake/cmake_celix/CodeCoverage.cmake incubator/celix/trunk/cmake/cmake_celix/Dependencies.cmake incubator/celix/trunk/cmake/cmake_celix/NOTE incubator/celix/trunk/cmake/cmake_celix/Packaging.cmake incubator/celix/trunk/cmake/cmake_celix/RunConfig.in incubator/celix/trunk/cmake/cmake_celix/Test.cmake incubator/celix/trunk/cmake/cmake_celix/config.properties.in incubator/celix/trunk/cmake/cmake_celix/installation.cmake incubator/celix/trunk/cmake/cmake_celix/manifest.in incubator/celix/trunk/cmake/cmake_celix/run.sh.in incubator/celix/trunk/cmake/cmake_celix/vcxproj.user.in Removed: incubator/celix/trunk/cmake/ApacheRat.cmake incubator/celix/trunk/cmake/Bundling.cmake incubator/celix/trunk/cmake/CPackConfig-Installation.in incubator/celix/trunk/cmake/CPackConfig.in incubator/celix/trunk/cmake/CPackConfigPKG.in incubator/celix/trunk/cmake/CodeCoverage.cmake incubator/celix/trunk/cmake/Dependencies.cmake incubator/celix/trunk/cmake/Includes.cmake incubator/celix/trunk/cmake/NOTE incubator/celix/trunk/cmake/Packaging.cmake incubator/celix/trunk/cmake/RunConfig.in incubator/celix/trunk/cmake/Test.cmake incubator/celix/trunk/cmake/config.properties.in incubator/celix/trunk/cmake/installation.cmake incubator/celix/trunk/cmake/manifest.in incubator/celix/trunk/cmake/modules/ incubator/celix/trunk/cmake/run.sh.in incubator/celix/trunk/cmake/vcxproj.user.in Modified: incubator/celix/trunk/CMakeLists.txt incubator/celix/trunk/framework/CMakeLists.txt Modified: incubator/celix/trunk/CMakeLists.txt URL: http://svn.apache.org/viewvc/incubator/celix/trunk/CMakeLists.txt?rev=1606995&r1=1606994&r2=1606995&view=diff ============================================================================== --- incubator/celix/trunk/CMakeLists.txt (original) +++ incubator/celix/trunk/CMakeLists.txt Tue Jul 1 06:54:57 2014 @@ -22,7 +22,7 @@ cmake_policy(SET CMP0012 NEW) #SET(CMAKE_VERBOSE_MAKEFILE ON) -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) set(CMAKE_INSTALL_NAME_DIR "@rpath") @@ -43,8 +43,8 @@ SET(CELIX_QUALIFIER "incubating") enable_testing() -include(cmake/Includes.cmake) -include(cmake/installation.cmake) +include(CMakeCelix) +include(cmake_celix/installation) include(UseDoxygen) # Default bundle version Added: incubator/celix/trunk/cmake/CMakeCelix.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/CMakeCelix.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/CMakeCelix.cmake (added) +++ incubator/celix/trunk/cmake/CMakeCelix.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,30 @@ +# 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(CELIX_CMAKE_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}) + +find_package(APR REQUIRED) + +include_directories(${APR_INCLUDE_DIR}) +include_directories(${APRUTIL_INCLUDE_DIR}) +include_directories("framework/public/include") + +include(cmake_celix/Dependencies) +include(cmake_celix/Packaging) +include(cmake_celix/Test) +include(cmake_celix/ApacheRat) Added: incubator/celix/trunk/cmake/FindAPR.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindAPR.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindAPR.cmake (added) +++ incubator/celix/trunk/cmake/FindAPR.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,111 @@ +# 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. + +# - Find Apache Portable Runtime +# Find the APR includes and libraries +# This module defines +# APR_INCLUDE_DIR and APRUTIL_INCLUDE_DIR, where to find apr.h, etc. +# APR_LIBRARIES and APRUTIL_LIBRARIES, the libraries needed to use APR. +# APR_FOUND and APRUTIL_FOUND, If false, do not try to use APR. +# also defined, but not for general use are +# APR_LIBRARY and APRUTIL_LIBRARY, where to find the APR library. + +# APR first. + +FIND_PATH(APR_INCLUDE_DIR apr.h +/usr/local/include/apr-1 +/usr/local/include/apr-1.0 +/usr/include/apr-1 +/usr/include/apr-1.0 +/usr/local/apr/include/apr-1 +) + +SET(APR_NAMES ${APR_NAMES} apr-1) +FIND_LIBRARY(APR_LIBRARY + NAMES ${APR_NAMES} + PATHS /usr/lib /usr/local/lib /usr/local/apr/lib + ) + +IF (APR_LIBRARY AND APR_INCLUDE_DIR) + SET(APR_LIBRARIES ${APR_LIBRARY}) + SET(APR_FOUND "YES") +ELSE (APR_LIBRARY AND APR_INCLUDE_DIR) + SET(APR_FOUND "NO") +ENDIF (APR_LIBRARY AND APR_INCLUDE_DIR) + + +IF (APR_FOUND) + IF (NOT APR_FIND_QUIETLY) + MESSAGE(STATUS "Found APR: ${APR_LIBRARIES}") + ENDIF (NOT APR_FIND_QUIETLY) +ELSE (APR_FOUND) + IF (APR_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find APR library") + ENDIF (APR_FIND_REQUIRED) +ENDIF (APR_FOUND) + +# Deprecated declarations. +SET (NATIVE_APR_INCLUDE_PATH ${APR_INCLUDE_DIR} ) +GET_FILENAME_COMPONENT (NATIVE_APR_LIB_PATH ${APR_LIBRARY} PATH) + +MARK_AS_ADVANCED( + APR_LIBRARY + APR_INCLUDE_DIR + ) + +# Next, APRUTIL. + +FIND_PATH(APRUTIL_INCLUDE_DIR apu.h +/usr/local/include/apr-1 +/usr/local/include/apr-1.0 +/usr/include/apr-1 +/usr/include/apr-1.0 +/usr/local/apr/include/apr-1 +) + +SET(APRUTIL_NAMES ${APRUTIL_NAMES} aprutil-1) +FIND_LIBRARY(APRUTIL_LIBRARY + NAMES ${APRUTIL_NAMES} + PATHS /usr/lib /usr/local/lib /usr/local/apr/lib + ) + +IF (APRUTIL_LIBRARY AND APRUTIL_INCLUDE_DIR) + SET(APRUTIL_LIBRARIES ${APRUTIL_LIBRARY}) + SET(APRUTIL_FOUND "YES") +ELSE (APRUTIL_LIBRARY AND APRUTIL_INCLUDE_DIR) + SET(APRUTIL_FOUND "NO") +ENDIF (APRUTIL_LIBRARY AND APRUTIL_INCLUDE_DIR) + + +IF (APRUTIL_FOUND) + IF (NOT APRUTIL_FIND_QUIETLY) + MESSAGE(STATUS "Found APRUTIL: ${APRUTIL_LIBRARIES}") + ENDIF (NOT APRUTIL_FIND_QUIETLY) +ELSE (APRUTIL_FOUND) + IF (APRUTIL_FIND_REQUIRED) + MESSAGE(FATAL_ERROR "Could not find APRUTIL library") + ENDIF (APRUTIL_FIND_REQUIRED) +ENDIF (APRUTIL_FOUND) + +# Deprecated declarations. +SET (NATIVE_APRUTIL_INCLUDE_PATH ${APRUTIL_INCLUDE_DIR} ) +GET_FILENAME_COMPONENT (NATIVE_APRUTIL_LIB_PATH ${APRUTIL_LIBRARY} PATH) + +MARK_AS_ADVANCED( + APRUTIL_LIBRARY + APRUTIL_INCLUDE_DIR + ) \ No newline at end of file Added: incubator/celix/trunk/cmake/FindCELIX.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindCELIX.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindCELIX.cmake (added) +++ incubator/celix/trunk/cmake/FindCELIX.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,54 @@ +# 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. + + +# - Try to find Celix +# Once done this will define +# CELIX_FOUND - System has Apache Celix +# CELIX_INCLUDE_DIRS - The Apache Celix include directories +# CELIX_LIBRARIES - The libraries needed to use Apache Celix +## +# CELIX_LAUNCHER - The path to the celix launcher + +find_path(CELIX_INCLUDE_DIR celix_errno.h + PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATH_SUFFIXES include include/celix) + +find_library(CELIX_FRAMEWORK_LIBRARY NAMES celix_framework + PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATH_SUFFIXES lib lib64) + +find_library(CELIX_UTILS_LIBRARY NAMES celix_utils + PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATH_SUFFIXES lib lib64) + +find_program(CELIX_LAUNCHER NAMES celix + PATHS $ENV{CELIX_DIR} ${CELIX_DIR} /usr /usr/local + PATH_SUFFIXES bin) + + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set CELIX_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(CELIX DEFAULT_MSG + CELIX_FRAMEWORK_LIBRARY CELIX_UTILS_LIBRARY CELIX_INCLUDE_DIR CELIX_LAUNCHER) +mark_as_advanced(CELIX_INCLUDE_DIR CELIX_FRAMEWORK_LIBRARY CELIX_UTILS_LIBRARY CELIX_LAUNCHER) + +if(CELIX_FOUND) + set(CELIX_LIBRARIES ${CELIX_FRAMEWORK_LIBRARY} ${CELIX_UTILS_LIBRARY}) + set(CELIX_INCLUDE_DIRS ${CELIX_INCLUDE_DIR}) +endif() Added: incubator/celix/trunk/cmake/FindCUnit.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindCUnit.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindCUnit.cmake (added) +++ incubator/celix/trunk/cmake/FindCUnit.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,65 @@ +# 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 (NOT WIN32) + include(FindCurses) +endif (NOT WIN32) + +FIND_PATH(CUNIT_INCLUDE_DIR CUnit/Basic.h + /usr/local/include + /usr/include + /opt/local/include +) + +FIND_PATH(CUNIT_SHARE_DIR CUnit-List.dtd + /usr/local/share/Cunit + /usr/share/CUnit + /opt/local/share/CUnit +) + +# On unix system, debug and release have the same name +FIND_LIBRARY(CUNIT_LIBRARY cunit + ${CUNIT_INCLUDE_DIR}/../../lib + /usr/local/lib + /usr/lib + ) +FIND_LIBRARY(CUNIT_DEBUG_LIBRARY cunit + ${CUNIT_INCLUDE_DIR}/../../lib + /usr/local/lib + /usr/lib + ) + +IF(CUNIT_INCLUDE_DIR) + IF(CUNIT_LIBRARY) + SET(CUNIT_FOUND "YES") + if (WIN32) + SET(CUNIT_LIBRARIES ${CUNIT_LIBRARY}) + SET(CUNIT_DEBUG_LIBRARIES ${CUNIT_DEBUG_LIBRARY}) + else (WIN32) + SET(CUNIT_LIBRARIES ${CUNIT_LIBRARY} ${CURSES_LIBRARY}) + SET(CUNIT_DEBUG_LIBRARIES ${CUNIT_DEBUG_LIBRARY} ${CURSES_DEBUG_LIBRARY}) + endif (WIN32) + ENDIF(CUNIT_LIBRARY) + IF(CUNIT_INCLUDE_DIR) + if (WIN32) + SET(CUNIT_INCLUDE_DIRS ${CUNIT_INCLUDE_DIR}) + else (WIN32) + MESSAGE(STATUS "Found CUNIT: ${CUNIT_INCLUDE_DIR}") + SET(CUNIT_INCLUDE_DIRS ${CUNIT_INCLUDE_DIR} ${CURSES_INCLUDE_DIR}) + endif (WIN32) + ENDIF(CUNIT_INCLUDE_DIR) +ENDIF(CUNIT_INCLUDE_DIR) Added: incubator/celix/trunk/cmake/FindCppUTest.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindCppUTest.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindCppUTest.cmake (added) +++ incubator/celix/trunk/cmake/FindCppUTest.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,38 @@ +# 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. + +FIND_PATH(CPPUTEST_INCLUDE_DIR NAMES CppUTest/TestHarness.h) +FIND_PATH(CPPUTEST_EXT_INCLUDE_DIR NAMES CppUTestExt/MockSupport.h) + +FIND_LIBRARY(CPPUTEST_LIBRARY NAMES CppUtest) +FIND_LIBRARY(CPPUTEST_EXT_LIBRARY NAMES CppUTestExt) + +# handle the QUIETLY and REQUIRED arguments and set CURL_FOUND to TRUE if +# all listed variables are TRUE +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPPUTEST DEFAULT_MSG CPPUTEST_LIBRARY CPPUTEST_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(CPPUTEST_EXT DEFAULT_MSG CPPUTEST_EXT_LIBRARY CPPUTEST_EXT_INCLUDE_DIR) + +IF(CPPUTEST_FOUND) + SET(CPPUTEST_LIBRARY ${CPPUTEST_LIBRARY}) + SET(CPPUTEST_INCLUDE_DIR ${CPPUTEST_INCLUDE_DIR}) +ENDIF(CPPUTEST_FOUND) + +IF(CPPUTEST_EXT_FOUND) + SET(CPPUTEST_EXT_LIBRARY ${CPPUTEST_EXT_LIBRARY}) + SET(CPPUTEST_EXT_INCLUDE_DIR ${CPPUTEST_EXT_INCLUDE_DIR}) +ENDIF(CPPUTEST_EXT_FOUND) \ No newline at end of file Added: incubator/celix/trunk/cmake/FindJansson.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindJansson.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindJansson.cmake (added) +++ incubator/celix/trunk/cmake/FindJansson.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,42 @@ +# 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. + + +# - Try to find Jansson +# Once done this will define +# JANSSON_FOUND - System has Jansson +# JANSSON_INCLUDE_DIRS - The Jansson include directories +# JANSSON_LIBRARIES - The libraries needed to use Jansson +# JANSSON_DEFINITIONS - Compiler switches required for using Jansson + +find_path(JANSSON_INCLUDE_DIR jansson.h + /usr/include + /usr/local/include ) + +find_library(JANSSON_LIBRARY NAMES jansson + PATHS /usr/lib /usr/local/lib ) + +set(JANSSON_LIBRARIES ${JANSSON_LIBRARY} ) +set(JANSSON_INCLUDE_DIRS ${JANSSON_INCLUDE_DIR} ) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set JANSSON_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(Jansson DEFAULT_MSG + JANSSON_LIBRARY JANSSON_INCLUDE_DIR) + +mark_as_advanced(JANSSON_INCLUDE_DIR JANSSON_LIBRARY ) \ No newline at end of file Added: incubator/celix/trunk/cmake/FindSlp.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindSlp.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindSlp.cmake (added) +++ incubator/celix/trunk/cmake/FindSlp.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,42 @@ +# 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. + + +# - Try to find Slp +# Once done this will define +# SLP_FOUND - System has Slp +# SLP_INCLUDE_DIRS - The Slp include directories +# SLP_LIBRARIES - The libraries needed to use Slp +# SLP_DEFINITIONS - Compiler switches required for using Slp + +find_path(SLP_INCLUDE_DIR slp.h + /usr/include + /usr/local/include ) + +find_library(SLP_LIBRARY NAMES slp + PATHS /usr/lib /usr/local/lib ) + +set(SLP_LIBRARIES ${SLP_LIBRARY} ) +set(SLP_INCLUDE_DIRS ${SLP_INCLUDE_DIR} ) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set SLP_FOUND to TRUE +# if all listed variables are TRUE +find_package_handle_standard_args(Slp DEFAULT_MSG + SLP_LIBRARY SLP_INCLUDE_DIR) + +mark_as_advanced(SLP_INCLUDE_DIR SLP_LIBRARY ) \ No newline at end of file Added: incubator/celix/trunk/cmake/FindUUID.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/FindUUID.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/FindUUID.cmake (added) +++ incubator/celix/trunk/cmake/FindUUID.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,37 @@ +# 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. + + +find_path(UUID_INCLUDE_DIR uuid/uuid.h + /usr/include + /usr/local/include ) + +find_library(UUID_LIBRARY NAMES uuid + PATHS /usr/lib /usr/local/lib /usr/lib64 /usr/local/lib64 /lib/i386-linux-gnu /lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu) + +include(FindPackageHandleStandardArgs) +if (APPLE) +find_package_handle_standard_args(UUID DEFAULT_MSG + UUID_INCLUDE_DIR) +else () +find_package_handle_standard_args(UUID DEFAULT_MSG + UUID_LIBRARY UUID_INCLUDE_DIR) +endif () + + +mark_as_advanced(UUID_INCLUDE_DIR UUID_LIBRARY) + Added: incubator/celix/trunk/cmake/UseDoxygen.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/UseDoxygen.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/UseDoxygen.cmake (added) +++ incubator/celix/trunk/cmake/UseDoxygen.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,168 @@ +# Redistribution and use is allowed according to the terms of the New +# BSD license: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# - Run Doxygen +# +# Adds a doxygen target that runs doxygen to generate the html +# and optionally the LaTeX API documentation. +# The doxygen target is added to the doc target as a dependency. +# i.e.: the API documentation is built with: +# make doc +# +# USAGE: GLOBAL INSTALL +# +# Install it with: +# cmake ./ && sudo make install +# Add the following to the CMakeLists.txt of your project: +# include(UseDoxygen OPTIONAL) +# Optionally copy Doxyfile.in in the directory of CMakeLists.txt and edit it. +# +# USAGE: INCLUDE IN PROJECT +# +# set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}) +# include(UseDoxygen) +# Add the Doxyfile.in and UseDoxygen.cmake files to the projects source directory. +# +# +# CONFIGURATION +# +# To configure Doxygen you can edit Doxyfile.in and set some variables in cmake. +# Variables you may define are: +# DOXYFILE_SOURCE_DIR - Path where the Doxygen input files are. +# Defaults to the current source directory. +# DOXYFILE_EXTRA_SOURCES - Additional source diretories/files for Doxygen to scan. +# The Paths should be in double quotes and separated by space. e.g.: +# "${CMAKE_CURRENT_BINARY_DIR}/foo.c" "${CMAKE_CURRENT_BINARY_DIR}/bar/" +# +# DOXYFILE_OUTPUT_DIR - Path where the Doxygen output is stored. +# Defaults to "${CMAKE_CURRENT_BINARY_DIR}/doc". +# +# DOXYFILE_LATEX - ON/OFF; Set to "ON" if you want the LaTeX documentation +# to be built. +# DOXYFILE_LATEX_DIR - Directory relative to DOXYFILE_OUTPUT_DIR where +# the Doxygen LaTeX output is stored. Defaults to "latex". +# +# DOXYFILE_HTML_DIR - Directory relative to DOXYFILE_OUTPUT_DIR where +# the Doxygen html output is stored. Defaults to "html". +# + +# +# Copyright (c) 2009, 2010, 2011 Tobias Rautenkranz +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# + +macro(usedoxygen_set_default name value type docstring) + if(NOT DEFINED "${name}") + set("${name}" "${value}" CACHE "${type}" "${docstring}") + endif() +endmacro() + +find_package(Doxygen) + +if(DOXYGEN_FOUND) + find_file(DOXYFILE_IN "Doxyfile.in" + PATHS "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_ROOT}/Modules/" + NO_DEFAULT_PATH + DOC "Path to the doxygen configuration template file") + set(DOXYFILE "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile") + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(DOXYFILE_IN DEFAULT_MSG "DOXYFILE_IN") +endif() + +if(DOXYGEN_FOUND AND DOXYFILE_IN_FOUND) + usedoxygen_set_default(DOXYFILE_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/doc" + PATH "Doxygen output directory") + usedoxygen_set_default(DOXYFILE_HTML_DIR "html" + STRING "Doxygen HTML output directory") + usedoxygen_set_default(DOXYFILE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" + PATH "Input files source directory") + usedoxygen_set_default(DOXYFILE_EXTRA_SOURCE_DIRS "" + STRING "Additional source files/directories separated by space") + set(DOXYFILE_SOURE_DIRS "\"${DOXYFILE_SOURCE_DIR}\" ${DOXYFILE_EXTRA_SOURCES}") + + usedoxygen_set_default(DOXYFILE_LATEX YES BOOL "Generate LaTeX API documentation" OFF) + usedoxygen_set_default(DOXYFILE_LATEX_DIR "latex" STRING "LaTex output directory") + + mark_as_advanced(DOXYFILE_OUTPUT_DIR DOXYFILE_HTML_DIR DOXYFILE_LATEX_DIR + DOXYFILE_SOURCE_DIR DOXYFILE_EXTRA_SOURCE_DIRS DOXYFILE_IN) + + + set_property(DIRECTORY + APPEND PROPERTY + ADDITIONAL_MAKE_CLEAN_FILES + "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_HTML_DIR}") + + add_custom_target(doxygen + COMMAND "${DOXYGEN_EXECUTABLE}" + "${DOXYFILE}" + COMMENT "Writing documentation to ${DOXYFILE_OUTPUT_DIR}..." + WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}") + + ## LaTeX + set(DOXYFILE_PDFLATEX "NO") + set(DOXYFILE_DOT "NO") + + set_property(DIRECTORY APPEND PROPERTY + ADDITIONAL_MAKE_CLEAN_FILES + "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}") + + if(DOXYFILE_LATEX STREQUAL "ON") + set(DOXYFILE_GENERATE_LATEX "YES") + find_package(LATEX) + find_program(DOXYFILE_MAKE make) + mark_as_advanced(DOXYFILE_MAKE) + if(LATEX_COMPILER AND MAKEINDEX_COMPILER AND DOXYFILE_MAKE) + if(PDFLATEX_COMPILER) + set(DOXYFILE_PDFLATEX "YES") + endif() + if(DOXYGEN_DOT_EXECUTABLE) + set(DOXYFILE_DOT "YES") + endif() + + add_custom_command(TARGET doxygen + POST_BUILD + COMMAND "${DOXYFILE_MAKE}" + COMMENT "Running LaTeX for Doxygen documentation in ${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}..." + WORKING_DIRECTORY "${DOXYFILE_OUTPUT_DIR}/${DOXYFILE_LATEX_DIR}") + else() + set(DOXYGEN_LATEX "NO") + endif() + else() + set(DOXYFILE_GENERATE_LATEX "NO") + endif() + + + configure_file("${DOXYFILE_IN}" "${DOXYFILE}" @ONLY) + + get_target_property(DOC_TARGET doc TYPE) + if(NOT DOC_TARGET) + add_custom_target(doc) + endif() + + add_dependencies(doc doxygen) +endif() Added: incubator/celix/trunk/cmake/cmake_celix/ApacheRat.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/ApacheRat.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/ApacheRat.cmake (added) +++ incubator/celix/trunk/cmake/cmake_celix/ApacheRat.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,30 @@ +# 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. + +find_package(Java COMPONENTS Runtime) + +if(Java_Runtime_FOUND) + set(APACHE_RAT "NOT_FOUND" CACHE FILEPATH "Full path to the Apache RAT JAR file") + + add_custom_target(rat + COMMAND ${Java_JAVA_EXECUTABLE} -jar ${APACHE_RAT} -E rat-excludes.txt -d . + + WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} + ) +else(Java_Runtime_FOUND) + MESSAGE(STATUS "Java not found, cannot execute Apache RAT checks") +endif(Java_Runtime_FOUND) \ No newline at end of file Added: incubator/celix/trunk/cmake/cmake_celix/CPackConfig-Installation.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/CPackConfig-Installation.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/CPackConfig-Installation.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/CPackConfig-Installation.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,29 @@ +# 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(CPACK_CMAKE_GENERATOR "Unix Makefiles") +SET(CPACK_GENERATOR "ZIP;STGZ") +SET(CPACK_INSTALL_CMAKE_PROJECTS "@PROJECT_BINARY_DIR@;Apache Celix;framework;/") +set(CPACK_PACKAGE_NAME "Apache Celix") +SET(CPACK_PACKAGE_DESCRIPTION "Package containing a release for Apache Celix") +SET(CPACK_PACKAGE_FILE_NAME "apache.celix-@CELIX_MAJOR@.@CELIX_MINOR@.@CELIX_MICRO@.@CELIX_QUALIFIER@") +set(CPACK_PACKAGE_VENDOR "incubator.apache.org/celix") +set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Framework") +set(CPACK_PACKAGE_VERSION_MAJOR "@CELIX_MAJOR@") +set(CPACK_PACKAGE_VERSION_MINOR "@CELIX_MINOR@") +set(CPACK_PACKAGE_VERSION_PATCH "@CELIX_MICRO@.@CELIX_QUALIFIER@") +set(CPACK_RESOURCE_FILE_LICENSE "@PROJECT_SOURCE_DIR@/LICENSE.txt") Added: incubator/celix/trunk/cmake/cmake_celix/CPackConfig.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/CPackConfig.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/CPackConfig.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/CPackConfig.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,25 @@ +# 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(CPACK_CMAKE_GENERATOR "@CMAKE_GENERATOR@") +SET(CPACK_GENERATOR "@CPACK_GENERATOR@") +SET(CPACK_INSTALL_CMAKE_PROJECTS "@BUNDLE_BIN_DIR@;@_BUNDLE_NAME@;@_BUNDLE_NAME_INSTALL@;/") +SET(CPACK_PACKAGE_DESCRIPTION "@BUNDLE_DESCRIPTION@") +SET(CPACK_PACKAGE_FILE_NAME "@_BUNDLE_NAME@") +SET(CPACK_PACKAGE_NAME "@_BUNDLE_NAME@") +SET(CPACK_PACKAGE_VERSION "@BUNDLE_VERSION@") +SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "0") Added: incubator/celix/trunk/cmake/cmake_celix/CPackConfigPKG.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/CPackConfigPKG.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/CPackConfigPKG.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/CPackConfigPKG.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,25 @@ +# 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(CPACK_CMAKE_GENERATOR "@CMAKE_GENERATOR@") +SET(CPACK_GENERATOR "@CPACK_GENERATOR@") +SET(CPACK_INSTALL_CMAKE_PROJECTS "@BUNDLE_BIN_DIR@;@INT_BUNDLE_NAME@;@PACKAGE_COMPONENT@;/") +SET(CPACK_PACKAGE_DESCRIPTION "@INT_BUNDLE_SYMBOLICNAME@ Package") +SET(CPACK_PACKAGE_FILE_NAME "@PACKAGE_NAME@-dev") +SET(CPACK_PACKAGE_NAME "@PACKAGE_NAME@") +SET(CPACK_PACKAGE_VERSION "@BUNDLE_VERSION@") +SET(CPACK_INCLUDE_TOPLEVEL_DIRECTORY "0") Added: incubator/celix/trunk/cmake/cmake_celix/CodeCoverage.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/CodeCoverage.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/CodeCoverage.cmake (added) +++ incubator/celix/trunk/cmake/cmake_celix/CodeCoverage.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,120 @@ +# Boost Software License - Version 1.0 - August 17th, 2003 +# +# Permission is hereby granted, free of charge, to any person or organization +# obtaining a copy of the software and accompanying documentation covered by +# this license (the "Software") to use, reproduce, display, distribute, +# execute, and transmit the Software, and to prepare derivative works of the +# Software, and to permit third-parties to whom the Software is furnished to +# do so, all subject to the following: +# +# The copyright notices in the Software and this entire statement, including +# the above license grant, this restriction and the following disclaimer, +# must be included in all copies of the Software, in whole or in part, and +# all derivative works of the Software, unless such copies or derivative +# works are solely in the form of machine-executable object code generated by +# a source language processor. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +# SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +# FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. + +# - Enable Code Coverage +# +# 2012-01-31, Lars Bilke +# +# USAGE: +# 1. Copy this file into your cmake modules path +# 2. Add the following line to your CMakeLists.txt: +# INCLUDE(CodeCoverage) +# +# 3. Use the function SETUP_TARGET_FOR_COVERAGE to create a custom make target +# which runs your test executable and produces a lcov code coverage report. +# + +# - Changes made by Celix +# 1. Added compiler options using --coverage instead of GCC specific strings +# 2. Added custom target to generate HTML pages for combined coverage results +# 3. Added each coverage target to the overall "coverage" target +# 4. Added "mock" to exclude list for coverage results +# 5. Removed HTML generation from the coverage setup function +# 6. Removed unneeded Cobertura function +# + +# Check prereqs +FIND_PROGRAM( GCOV_PATH gcov ) +FIND_PROGRAM( LCOV_PATH lcov ) +FIND_PROGRAM( GENHTML_PATH genhtml ) +FIND_PROGRAM( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/tests) + +IF(NOT GCOV_PATH) + MESSAGE(FATAL_ERROR "gcov not found! Aborting...") +ENDIF() # NOT GCOV_PATH + +#IF(NOT CMAKE_COMPILER_IS_GNUCXX) +# MESSAGE(FATAL_ERROR "Compiler is not GNU gcc! Aborting...") +#ENDIF() # NOT CMAKE_COMPILER_IS_GNUCXX + +IF ( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" ) + MESSAGE( WARNING "Code coverage results with an optimised (non-Debug) build may be misleading" ) +ENDIF() # NOT CMAKE_BUILD_TYPE STREQUAL "Debug" + +# Setup compiler options +ADD_DEFINITIONS(--coverage) +set(CMAKE_SHARED_LINKER_FLAGS "--coverage") +set(CMAKE_EXE_LINKER_FLAGS "--coverage") + +GET_TARGET_PROPERTY(coverage_def coverage COVERAGE_TARGET_ADDED) +IF(${coverage_def} MATCHES NOTFOUND) + + + add_custom_target(coverage + COMMAND ${CMAKE_COMMAND} -E make_directory coverage_results + COMMAND ${GENHTML_PATH} -o coverage_results coverage/*.info.cleaned + COMMAND ${CMAKE_COMMAND} -E remove_directory coverage + + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + COMMENT "Generating report.\nOpen ./${_outputname}/index.html in your browser to view the coverage report." + ) + + SET_TARGET_PROPERTIES(coverage PROPERTIES COVERAGE_TARGET_ADDED "") +ENDIF() + +# Param _targetname The name of new the custom make target +# Param _testrunner The name of the target which runs the tests +# Param _outputname lcov output is generated as _outputname.info +# HTML report is generated in _outputname/index.html +# Optional fourth parameter is passed as arguments to _testrunner +# Pass them in list form, e.g.: "-j;2" for -j 2 +FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname) + + IF(NOT LCOV_PATH) + MESSAGE(FATAL_ERROR "lcov not found! Aborting...") + ENDIF() # NOT LCOV_PATH + + IF(NOT GENHTML_PATH) + MESSAGE(FATAL_ERROR "genhtml not found! Aborting...") + ENDIF() # NOT GENHTML_PATH + + # Setup target + ADD_CUSTOM_TARGET(${_targetname} + + # Cleanup lcov + ${LCOV_PATH} --directory . --zerocounters + + # Run tests + COMMAND ${_testrunner} ${ARGV3} + + # Capturing lcov counters and generating report + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/coverage + COMMAND ${LCOV_PATH} --directory . --capture --output-file ${_outputname}.info + COMMAND ${LCOV_PATH} --remove ${_outputname}.info 'mock/*' 'test/*' '/usr/*' --output-file ${_outputname}.info.cleaned + + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report." + ) + ADD_DEPENDENCIES(coverage ${_targetname}) +ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE \ No newline at end of file Added: incubator/celix/trunk/cmake/cmake_celix/Dependencies.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/Dependencies.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/Dependencies.cmake (added) +++ incubator/celix/trunk/cmake/cmake_celix/Dependencies.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,62 @@ +# 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. + +MACRO(celix_subproject) + PARSE_ARGUMENTS(OPTION "DEPS" "" ${ARGN}) + LIST(GET OPTION_DEFAULT_ARGS 0 OPTION_NAME) + LIST(GET OPTION_DEFAULT_ARGS 1 OPTION_DESCRIPTION) + LIST(GET OPTION_DEFAULT_ARGS 2 OPTION_DEFAULT) + + string(TOUPPER ${OPTION_NAME} UC_OPTION_NAME) + set(NAME "BUILD_${UC_OPTION_NAME}") + + option(${NAME} "${OPTION_DESCRIPTION}" ${OPTION_DEFAULT}) + + get_property(BUILD GLOBAL PROPERTY ${NAME}_INTERNAL) + if (NOT DEFINED BUILD) + set(BUILD "OFF") + endif (NOT DEFINED BUILD) + + IF (${NAME} OR ${BUILD}) + set(${OPTION_NAME} "ON") + set_property(GLOBAL PROPERTY ${NAME}_INTERNAL "ON") + + FOREACH (DEP ${OPTION_DEPS}) + string(TOUPPER ${DEP} UC_DEP) + set(DEP_NAME "BUILD_${UC_DEP}") + set_property(GLOBAL PROPERTY ${DEP_NAME}_INTERNAL "ON") + ENDFOREACH (DEP) + ELSE (${NAME} OR ${BUILD}) + set(${OPTION_NAME} "OFF") + ENDIF (${NAME} OR ${BUILD}) +ENDMACRO(celix_subproject) + +MACRO(is_enabled name) + string(TOUPPER ${name} UC_NAME) + set(NAME "BUILD_${UC_NAME}") + + get_property(BUILD GLOBAL PROPERTY ${NAME}_INTERNAL) + if (NOT DEFINED BUILD) + set(BUILD "OFF") + endif (NOT DEFINED BUILD) + + IF (${BUILD}) + set(${name} "ON") + ELSE (${BUILD}) + set(${name} "OFF") + ENDIF (${BUILD}) +ENDMACRO(is_enabled) \ No newline at end of file Added: incubator/celix/trunk/cmake/cmake_celix/NOTE URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/NOTE?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/NOTE (added) +++ incubator/celix/trunk/cmake/cmake_celix/NOTE Tue Jul 1 06:54:57 2014 @@ -0,0 +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. + +All files in this directory are licensed to the Apache Software Foundation (as included above). +Normally source/txt files should include this header but for templates this sometimes is not possible. +The following templates do not include the header: +* config.properties.in +* run.sh.in +* RunConfig.in +* manifest.in + +This note is added to explicitly mention that the same licensing applies to these files as to any other having the header. \ No newline at end of file Added: incubator/celix/trunk/cmake/cmake_celix/Packaging.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/Packaging.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/Packaging.cmake (added) +++ incubator/celix/trunk/cmake/cmake_celix/Packaging.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,495 @@ +# 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. + +GET_FILENAME_COMPONENT(__cmake_path ${CMAKE_COMMAND} PATH) +FIND_PROGRAM(CPACK_COMMAND cpack ${__cmake_path}) +MESSAGE(STATUS "Found CPack at: ${CPACK_COMMAND}") +IF(NOT CPACK_COMMAND) + MESSAGE(FATAL_ERROR "Need CPack!") +ENDIF(NOT CPACK_COMMAND) + +include(CPackComponent) + +macro( CELIX_ADD_COMPONENT_GROUP _group ) + set( _readVariable ) + set( _parentGroup ) + foreach( _i ${ARGN} ) + if( _readVariable ) + set( ${_readVariable} "${_i}" ) + break() + else( _readVariable ) + if( "${_i}" STREQUAL PARENT_GROUP ) + set( _readVariable _parentGroup ) + endif( "${_i}" STREQUAL PARENT_GROUP ) + endif( _readVariable ) + endforeach( _i ${ARGN} ) + + cpack_add_component_group( ${_group} ${ARGN} ) + add_custom_target( install-${_group} ) + if( _parentGroup ) + add_dependencies( install-${_parentGroup} install-${_group} ) + endif( _parentGroup ) +endmacro( CELIX_ADD_COMPONENT_GROUP _group ) + +macro( CELIX_ADD_COMPONENT _component ) + set( _readVariable ) + set( _group ) + foreach( _i ${ARGN} ) + if( _readVariable ) + set( ${_readVariable} "${_i}" ) + break() + else( _readVariable ) + if( "${_i}" STREQUAL GROUP ) + set( _readVariable _group ) + endif( "${_i}" STREQUAL GROUP ) + endif( _readVariable ) + endforeach( _i ${ARGN} ) + + cpack_add_component( ${_component} ${ARGN} ) + add_custom_target( install-${_component} + COMMAND ${CMAKE_COMMAND} -DCOMPONENT=${_component} -P +"${CMAKE_BINARY_DIR}/cmake_install.cmake" ) + add_dependencies( install-${_group} install-${_component} ) +endmacro( CELIX_ADD_COMPONENT _component _group ) + +find_program(JAR_COMMAND jar) +if(JAR_COMMAND) + message(STATUS "Using JAR to repack bundles, bundles can be used by Apache ACE") +else(JAR_COMMAND) + message("No JAR support, generated bundles are not usable for Apache ACE") +endif(JAR_COMMAND) + +SET(CPACK_GENERATOR "ZIP") + +celix_add_component_group(all) +celix_add_component_group(bundles PARENT_GROUP all) + +add_custom_target(bundles ALL) + +MACRO(CHECK_HEADERS) + if (NOT BUNDLE_SYMBOLICNAME) + MESSAGE(FATAL_ERROR "Bundle Symbolic Name not set, please set it using \"SET(BUNDLE_SYMBOLIC_NAME \"bundle_symbolic_name\")\".") + endif (NOT BUNDLE_SYMBOLICNAME) + + if (NOT BUNDLE_VERSION) + MESSAGE(WARNING "Bundle version not set, using default \"0.0.0\" version.") + SET(BUNDLE_VERSION "0.0.0") + endif (NOT BUNDLE_VERSION) +ENDMACRO(CHECK_HEADERS) + +MACRO(SET_HEADER header content) + SET(${header} "${content}") + string(STRIP ${${header}} ${${header}}) +ENDMACRO(SET_HEADER) + +MACRO(SET_HEADERS content) + SET(INT_BUNDLE_EXTRAHEADER "${INT_BUNDLE_EXTRAHEADER}\n${content}") + string(STRIP "${INT_BUNDLE_EXTRAHEADER}" INT_BUNDLE_EXTRAHEADER) +ENDMACRO(SET_HEADERS) + +MACRO(BUNDLE_PRIVATE_LIBRARY) + PARSE_ARGUMENTS(BUNDLE_LIBRARY "SOURCES;LINK_LIBRARIES" "" ${ARGN}) + LIST(GET BUNDLE_LIBRARY_DEFAULT_ARGS 0 BUNDLE_LIBRARY_NAME) + + CHECK_HEADERS() + + SET(BUNDLE_LIBRARY_VERSIONED_NAME ${BUNDLE_SYMBOLICNAME}-${BUNDLE_LIBRARY_NAME}) + + add_library(${BUNDLE_LIBRARY_VERSIONED_NAME} SHARED ${BUNDLE_LIBRARY_SOURCES}) + target_link_libraries(${BUNDLE_LIBRARY_VERSIONED_NAME} ${BUNDLE_LIBRARY_LINK_LIBRARIES}) +ENDMACRO(BUNDLE_PRIVATE_LIBRARY) + +MACRO(BUNDLE_LIBRARY) + PARSE_ARGUMENTS(BUNDLE_LIBRARY "SOURCES;LINK_LIBRARIES" "" ${ARGN}) + LIST(GET BUNDLE_LIBRARY_DEFAULT_ARGS 0 BUNDLE_LIBRARY_NAME) + + SET(BUNDLE_LIBRARY_VERSIONED_NAME ${BUNDLE_LIBRARY_NAME}) + + add_library(${BUNDLE_LIBRARY_VERSIONED_NAME} SHARED ${BUNDLE_LIBRARY_SOURCES}) + target_link_libraries(${BUNDLE_LIBRARY_VERSIONED_NAME} ${BUNDLE_LIBRARY_LINK_LIBRARIES}) +ENDMACRO(BUNDLE_LIBRARY) + +MACRO(_parseExportLibraryName _export) + STRING(REPLACE "|" ";" _exports ${_export}) + LIST(LENGTH _exports _size) + LIST(GET _exports 0 _library) + SET(EXPORT_LIBRARY_NAME ${_library}) + + IF(${_size} EQUAL 2) + LIST(GET _exports 1 _version) + IF(_version) + string(FIND ${_version} "\"" _start) + string(FIND ${_version} "\"" _end REVERSE) + MATH(EXPR _start ${_start}+1) + MATH(EXPR _length ${_end}-${_start}) + string(SUBSTRING ${_version} ${_start} ${_length} ENDIF) + + SET(EXPORT_LIBRARY_NAME ${_library}-${ENDIF}) + ENDIF() + ENDIF() +ENDMACRO() + +MACRO(PROCESS_MANIFEST_HEADERS) + IF(BUNDLE_DESCRIPTION) + SET_HEADERS("Bundle-Description: ${BUNDLE_DESCRIPTION}") + ENDIF() + IF(BUNDLE_VERSION) + SET_HEADERS("Bundle-Version: ${BUNDLE_VERSION}") + ENDIF() + IF(BUNDLE_NAME) + SET_HEADERS("Bundle-Name: ${BUNDLE_NAME}") + ENDIF() +ENDMACRO() + + +MACRO(bundle) + PARSE_ARGUMENTS(_BUNDLE "SOURCES;EXPORT_VERSION;ACTIVATOR;PRIVATE_LIBRARIES;EXPORT_LIBRARIES;IMPORT_LIBRARIES;FILES;DIRECTORIES;INSTALL_FILES" "PRIVATE;EXPORT;INSTALL" ${ARGN}) + LIST(GET _BUNDLE_DEFAULT_ARGS 0 _BUNDLE_NAME) + + CHECK_HEADERS() + + PROCESS_MANIFEST_HEADERS() + + set(_BUNDLE_NAME_INSTALL ${_BUNDLE_NAME}_install) + + if(_BUNDLE_SOURCES) + add_library(${_BUNDLE_NAME} SHARED ${_BUNDLE_SOURCES}) + SET_HEADERS("Bundle-Activator: ${_BUNDLE_NAME}") + else(_BUNDLE_SOURCES) + add_custom_target(${_BUNDLE_NAME}) + add_dependencies(bundles ${_BUNDLE_NAME}) + endif(_BUNDLE_SOURCES) + + SET(TEMP) + foreach(_PRIVATE_LIBRARY ${_BUNDLE_PRIVATE_LIBRARIES}) + SET(_BUNDLE_LIBRARY_VERSIONED_NAME ${BUNDLE_SYMBOLICNAME}-${_PRIVATE_LIBRARY}) + add_dependencies(${_BUNDLE_NAME} "${_BUNDLE_LIBRARY_VERSIONED_NAME}") + install(TARGETS ${_BUNDLE_LIBRARY_VERSIONED_NAME} DESTINATION . COMPONENT ${_BUNDLE_NAME}_install) + + SET(TEMP ${TEMP} ${_BUNDLE_LIBRARY_VERSIONED_NAME}) + endforeach() + SET(_BUNDLE_PRIVATE_LIBRARIES ${TEMP}) + UNSET(TEMP) + + FOREACH(_EXPORT_LIBRARY ${_BUNDLE_EXPORT_LIBRARIES}) + _parseExportLibraryName(${_EXPORT_LIBRARY}) + ADD_DEPENDENCIES(${_BUNDLE_NAME} ${EXPORT_LIBRARY_NAME}) + INSTALL(TARGETS ${EXPORT_LIBRARY_NAME} DESTINATION . COMPONENT ${_BUNDLE_NAME}_install) + ENDFOREACH() + + set_property(TARGET ${_BUNDLE_NAME} PROPERTY BUNDLE "${CMAKE_CURRENT_BINARY_DIR}/${_BUNDLE_NAME}.zip") + + if(_BUNDLE_SOURCES) + list(APPEND _BUNDLE_PRIVATE_LIBRARIES ${_BUNDLE_NAME}) + endif(_BUNDLE_SOURCES) + + string (REPLACE ";" "," _BUNDLE_PRIVATE_LIBRARIES "${_BUNDLE_PRIVATE_LIBRARIES}") + string (REPLACE ";" "," _BUNDLE_EXPORT_LIBRARIES "${_BUNDLE_EXPORT_LIBRARIES}") + string (REPLACE "|" ";" _BUNDLE_EXPORT_LIBRARIES "${_BUNDLE_EXPORT_LIBRARIES}") + string (REPLACE ";" "," _BUNDLE_IMPORT_LIBRARIES "${_BUNDLE_IMPORT_LIBRARIES}") + string (REPLACE "|" ";" _BUNDLE_IMPORT_LIBRARIES "${_BUNDLE_IMPORT_LIBRARIES}") + + if(_BUNDLE_ACTIVATOR) + SET_HEADERS("Bundle-Activator: ${_BUNDLE_ACTIVATOR}") + endif() + if(_BUNDLE_PRIVATE_LIBRARIES) + SET_HEADERS("Private-Library: ${_BUNDLE_PRIVATE_LIBRARIES}") + endif() + if(_BUNDLE_EXPORT_LIBRARIES) + SET_HEADERS("Export-Library: ${_BUNDLE_EXPORT_LIBRARIES}") + endif() + if(_BUNDLE_IMPORT_LIBRARIES) + SET_HEADERS("Import-Library: ${_BUNDLE_IMPORT_LIBRARIES}") + endif() + + SET(__bundleManifest ${CMAKE_CURRENT_BINARY_DIR}/MANIFEST.MF) + CONFIGURE_FILE(${CELIX_CMAKE_DIRECTORY}/cmake_celix/manifest.in ${__bundleManifest} @ONLY) + install (FILES ${__bundleManifest} DESTINATION ./META-INF COMPONENT ${_BUNDLE_NAME_INSTALL}) + + if(_BUNDLE_SOURCES) + install (TARGETS ${_BUNDLE_NAME} DESTINATION . COMPONENT ${_BUNDLE_NAME_INSTALL}) + endif(_BUNDLE_SOURCES) + + if(_BUNDLE_FILES) + install (FILES ${_BUNDLE_FILES} DESTINATION . COMPONENT ${_BUNDLE_NAME_INSTALL}) + endif() + if(_BUNDLE_DIRECTORIES) + install (DIRECTORY ${_BUNDLE_DIRECTORIES} DESTINATION . COMPONENT ${_BUNDLE_NAME_INSTALL}) + endif() + + SET(__bundleConfig ${CMAKE_CURRENT_BINARY_DIR}/CPackConfig-${_BUNDLE_NAME}-bundle.cmake) + SET(BUNDLE_BIN_DIR ${CMAKE_CURRENT_BINARY_DIR}) + CONFIGURE_FILE(${CELIX_CMAKE_DIRECTORY}/cmake_celix/CPackConfig.in ${__bundleConfig} @ONLY) + + if(JAR_COMMAND) + ADD_CUSTOM_COMMAND(TARGET ${_BUNDLE_NAME} + POST_BUILD + COMMAND ${CPACK_COMMAND} ARGS -C Debug --config ${__bundleConfig} + COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/ziptojar + COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR}/ziptojar ${JAR_COMMAND} -xf ${CMAKE_CURRENT_BINARY_DIR}/${_BUNDLE_NAME}.zip + COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_CURRENT_BINARY_DIR}/ziptojar ${JAR_COMMAND} -cfm ${CMAKE_CURRENT_BINARY_DIR}/${_BUNDLE_NAME}.zip META-INF/MANIFEST.MF . + COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_CURRENT_BINARY_DIR}/ziptojar + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + else(JAR_COMMAND) + ADD_CUSTOM_COMMAND(TARGET ${_BUNDLE_NAME} + POST_BUILD + COMMAND ${CPACK_COMMAND} ARGS -C Debug --config ${__bundleConfig} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + endif(JAR_COMMAND) + + if (_BUNDLE_INSTALL) + CELIX_ADD_COMPONENT(${_BUNDLE_NAME} + DISPLAY_NAME ${BUNDLE_SYMBOLICNAME} + DESCRIPTION ${BUNDLE_DESCRIPTION} + GROUP bundles + ) + add_dependencies( install-${_BUNDLE_NAME} ${_BUNDLE_NAME} ) + + if (_BUNDLE_INSTALL_FILES) + install (FILES ${_BUNDLE_INSTALL_FILES} DESTINATION include/celix/${_BUNDLE_NAME} COMPONENT ${_BUNDLE_NAME}) + endif() + + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${_BUNDLE_NAME}.zip DESTINATION share/celix/bundles COMPONENT ${_BUNDLE_NAME}) + endif() + + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/${_BUNDLE_NAME}.zip) +ENDMACRO(bundle) + +MACRO(install_bundle) + PARSE_ARGUMENTS(BUNDLE "HEADERS;RESOURCES" "" ${ARGN}) + LIST(GET BUNDLE_DEFAULT_ARGS 0 INT_BUNDLE_NAME) + + CELIX_ADD_COMPONENT(${INT_BUNDLE_NAME} + DISPLAY_NAME ${INT_BUNDLE_NAME} + DESCRIPTION ${INT_BUNDLE_NAME} + GROUP bundles + ) + add_dependencies( install-${INT_BUNDLE_NAME} ${INT_BUNDLE_NAME} ) + + if (BUNDLE_HEADERS) + install (FILES ${BUNDLE_HEADERS} DESTINATION include/celix/${INT_BUNDLE_NAME} COMPONENT ${INT_BUNDLE_NAME}) + endif(BUNDLE_HEADERS) + if (BUNDLE_RESOURCES) + install (FILES ${BUNDLE_RESOURCES} DESTINATION share/celix/${INT_BUNDLE_NAME} COMPONENT ${INT_BUNDLE_NAME}) + endif(BUNDLE_RESOURCES) + + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${INT_BUNDLE_NAME}.zip DESTINATION share/celix/bundles COMPONENT ${INT_BUNDLE_NAME}) +ENDMACRO(install_bundle) + +MACRO(package) + PARSE_ARGUMENTS(PACKAGE "FILES;DIRECTORIES" "" ${ARGN}) + LIST(GET PACKAGE_DEFAULT_ARGS 0 PACKAGE_NAME) + + SET(PACKAGE_COMPONENT package_${PACKAGE_NAME}) + + get_property(bundle_file TARGET ${INT_BUNDLE_NAME} PROPERTY BUNDLE) + + install (FILES ${bundle_file} DESTINATION . COMPONENT ${PACKAGE_COMPONENT}) + + if (PACKAGE_FILES) + install (FILES ${PACKAGE_FILES} DESTINATION . COMPONENT ${PACKAGE_COMPONENT}) + endif(PACKAGE_FILES) + if (PACKAGE_DIRECTORIES) + install (DIRECTORY ${PACKAGE_DIRECTORIES} DESTINATION . COMPONENT ${PACKAGE_COMPONENT}) + endif(PACKAGE_DIRECTORIES) + + SET(__packageConfig ${CMAKE_CURRENT_BINARY_DIR}/CPackConfig-${PACKAGE_NAME}-pkg.cmake) + CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/CPackConfigPKG.in ${__packageConfig} @ONLY) + ADD_CUSTOM_COMMAND(TARGET ${PACKAGE_NAME} + POST_BUILD + COMMAND ${CPACK_COMMAND} --config "${__packageConfig}" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + ) + + GET_DIRECTORY_PROPERTY(PROPS ADDITIONAL_MAKE_CLEAN_FILES) + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROPS};${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}-dev.zip") +ENDMACRO(package) + + +ADD_CUSTOM_TARGET(deploy) +MACRO(deploy) + PARSE_ARGUMENTS(DEPLOY "BUNDLES;DRIVERS;ENDPOINTS;PROPERTIES" "" ${ARGN}) + LIST(GET DEPLOY_DEFAULT_ARGS 0 DEPLOY_NAME) + + SET(DEPLOY_COMPONENT deploy_${DEPLOY_NAME}) + SET(__deployTarget deploy_${DEPLOY_NAME}) + + SET(BUNDLES "") + SET(DEPS) + SET(PROPERTIES "") + + FOREACH(BUNDLE ${DEPLOY_BUNDLES}) + SET(DEP_NAME ${DEPLOY_NAME}_${BUNDLE}) + get_property(bundle_file TARGET ${BUNDLE} PROPERTY BUNDLE) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip + COMMAND ${CMAKE_COMMAND} -E copy ${bundle_file} + ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip + DEPENDS ${BUNDLE} + COMMENT "Deploying ${BUNDLE} to ${DEPLOY_NAME}" + ) + SET(BUNDLES "${BUNDLES} bundles/${BUNDLE}.zip") + SET(DEPS ${DEPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles/${BUNDLE}.zip) + ENDFOREACH(BUNDLE) + + FOREACH(BUNDLE ${DEPLOY_DRIVERS}) + SET(DEP_NAME ${DEPLOY_NAME}_${BUNDLE}) + get_property(bundle_file TARGET ${BUNDLE} PROPERTY BUNDLE) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/drivers/${BUNDLE}.zip + COMMAND ${CMAKE_COMMAND} -E copy ${bundle_file} + ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/drivers/${BUNDLE}.zip + DEPENDS ${BUNDLE} + COMMENT "Deploying ${BUNDLE} to ${DEPLOY_NAME}" + ) + #SET(BUNDLES "${BUNDLES} drivers/${BUNDLE}.zip") + SET(DEPS ${DEPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/drivers/${BUNDLE}.zip) + ENDFOREACH(BUNDLE) + + FOREACH(BUNDLE ${DEPLOY_ENDPOINTS}) + SET(DEP_NAME ${DEPLOY_NAME}_${BUNDLE}) + get_property(bundle_file TARGET ${BUNDLE} PROPERTY BUNDLE) + add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/endpoints/${BUNDLE}.zip + COMMAND ${CMAKE_COMMAND} -E copy ${bundle_file} + ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/endpoints/${BUNDLE}.zip + DEPENDS ${BUNDLE} + COMMENT "Deploying ${BUNDLE} to ${DEPLOY_NAME}" + ) + #SET(BUNDLES "${BUNDLES} drivers/${BUNDLE}.zip") + SET(DEPS ${DEPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/endpoints/${BUNDLE}.zip) + ENDFOREACH(BUNDLE) + + FOREACH(PROPERTY ${DEPLOY_PROPERTIES}) + SET(PROPERTIES "${PROPERTIES}\n${PROPERTY}") + ENDFOREACH(PROPERTY) + + IF(NOT(CELIX_FOUND)) #celix project + set(DEPS ${DEPS};celix) + ENDIF() + ADD_CUSTOM_TARGET(${__deployTarget} + DEPENDS ${DEPS} + COMMENT "Deploy target ${DEPLOY_NAME}") + ADD_DEPENDENCIES(deploy ${__deployTarget}) + + GET_DIRECTORY_PROPERTY(PROPS ADDITIONAL_MAKE_CLEAN_FILES) + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/bundles") + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROPS};${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/drivers") + + CONFIGURE_FILE(${CELIX_CMAKE_DIRECTORY}/cmake_celix/config.properties.in ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/config.properties @ONLY) + + IF(UNIX) + if(CELIX_FOUND) + GET_FILENAME_COMPONENT(FW_PATH ${CELIX_FRAMEWORK_LIBRARY} PATH) + GET_FILENAME_COMPONENT(UTILS_PATH ${CELIX_UTILS_LIBRARY} PATH) + set(LAUNCHER ${CELIX_LAUNCHER}) + ELSE(CELIX_FOUND) + set(FW_PATH ${CMAKE_BINARY_DIR}/framework) + set(UTILS_PATH ${CMAKE_BINARY_DIR}/utils) + set(LAUNCHER ${CMAKE_BINARY_DIR}/launcher/celix) + ENDIF(CELIX_FOUND) + + + IF(UNIX) + IF(APPLE) + set(LIBRARY_PATH DYLD_LIBRARY_PATH) + ELSE(APPLE) + set(LIBRARY_PATH LD_LIBRARY_PATH) + ENDIF(APPLE) + ENDIF(UNIX) + + CONFIGURE_FILE(${CELIX_CMAKE_DIRECTORY}/cmake_celix/run.sh.in ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/run.sh @ONLY) + + # Generate an Eclipse launch file to be able to run the deployment from Eclipse + # Linux/unix is assumed since we do only support VS on windows + string(REPLACE "/" ";" LIST ${PROJECT_BINARY_DIR}) + list(LENGTH LIST len) + MATH(EXPR test "${len} - 1") + LIST(GET LIST ${test} last) + + SET(CONTAINER_NAME ${DEPLOY_NAME}) + SET(PROGRAM_NAME ${LAUNCHER}) + SET(PROJECT_ATTR ${last}) + SET(WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/") + + CONFIGURE_FILE(${CELIX_CMAKE_DIRECTORY}/cmake_celix/RunConfig.in ${CMAKE_CURRENT_BINARY_DIR}/deploy/${DEPLOY_NAME}/${DEPLOY_NAME}.launch @ONLY) + ENDIF(UNIX) + + IF(WIN32) + GET_FILENAME_COMPONENT(apr_path ${APR_LIBRARY} PATH) + GET_FILENAME_COMPONENT(aprutil_path ${APRUTIL_LIBRARY} PATH) + GET_FILENAME_COMPONENT(zlib_path ${ZLIB_LIBRARY} PATH) + GET_FILENAME_COMPONENT(curl_path ${CURL_LIBRARY} PATH) + + IF(CELIX_FOUND) + SET(celixutils_path "${CELIX_FRAMEWORK_LIBRARY}/utils/${CMAKE_BUILD_TYPE}") + SET(celixframework_path "${CELIX_FRAMEWORK_LIBRARY}/framework/${CMAKE_BUILD_TYPE}") + ELSE(CELIX_FOUND) + SET(celixutils_path "${PROJECT_BINARY_DIR}/utils/${CMAKE_BUILD_TYPE}") + SET(celixframework_path "${PROJECT_BINARY_DIR}/framework/${CMAKE_BUILD_TYPE}") + ENDIF(CELIX_FOUND) + + SET(PATH "%PATH%;${apr_path};${aprutil_path};${zlib_path};${curl_path};${celixutils_path};${celixframework_path}") + + CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/vcxproj.user.in ${CMAKE_CURRENT_BINARY_DIR}/deploy_${DEPLOY_NAME}.vcxproj.user @ONLY) + ENDIF(WIN32) +ENDMACRO(deploy) + +# macro for scanning subdirectories for deploy.cmake files +# these files contain the deployment of targets +MACRO(deploy_targets) + FILE(GLOB_RECURSE new_list deploy.cmake) + SET(dir_list "") + FOREACH(file_path ${new_list}) + SET(dir_list ${dir_list} ${file_path}) + ENDFOREACH() + LIST(REMOVE_DUPLICATES dir_list) + FOREACH(file_path ${dir_list}) + include(${file_path}) + ENDFOREACH() +ENDMACRO() + +MACRO(PARSE_ARGUMENTS prefix arg_names option_names) + SET(DEFAULT_ARGS) + FOREACH(arg_name ${arg_names}) + SET(${prefix}_${arg_name}) + ENDFOREACH(arg_name) + FOREACH(option ${option_names}) + SET(${prefix}_${option} FALSE) + ENDFOREACH(option) + + SET(current_arg_name DEFAULT_ARGS) + SET(current_arg_list) + FOREACH(arg ${ARGN}) + SET(larg_names ${arg_names}) + LIST(FIND larg_names "${arg}" is_arg_name) + IF (is_arg_name GREATER -1) + SET(${prefix}_${current_arg_name} ${current_arg_list}) + SET(current_arg_name ${arg}) + SET(current_arg_list) + ELSE (is_arg_name GREATER -1) + SET(loption_names ${option_names}) + LIST(FIND loption_names "${arg}" is_option) + IF (is_option GREATER -1) + SET(${prefix}_${arg} TRUE) + ELSE (is_option GREATER -1) + SET(current_arg_list ${current_arg_list} ${arg}) + ENDIF (is_option GREATER -1) + ENDIF (is_arg_name GREATER -1) + ENDFOREACH(arg) + SET(${prefix}_${current_arg_name} ${current_arg_list}) +ENDMACRO(PARSE_ARGUMENTS) + Added: incubator/celix/trunk/cmake/cmake_celix/RunConfig.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/RunConfig.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/RunConfig.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/RunConfig.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + Added: incubator/celix/trunk/cmake/cmake_celix/Test.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/Test.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/Test.cmake (added) +++ incubator/celix/trunk/cmake/cmake_celix/Test.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,48 @@ +# 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. + +FUNCTION(ADD_TARGET_FOR_TEST _testrunner) + add_test(NAME ${_testrunner} + COMMAND ${_testrunner} -ojunit) + + string(LENGTH ${_testrunner} length) + math(EXPR l "${length} - 5") + string(SUBSTRING ${_testrunner} 0 ${l} output) + + GET_DIRECTORY_PROPERTY(PROPS ADDITIONAL_MAKE_CLEAN_FILES) + SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${PROPS};${CMAKE_CURRENT_BINARY_DIR}/cpputest_${output}.xml") +ENDFUNCTION() # ADD_TARGET_FOR_TEST + +include(FindCUnit) + +ADD_CUSTOM_TARGET(test_cunit) +MACRO(run_test) + PARSE_ARGUMENTS(TEST "" "" ${ARGN}) + LIST(GET TEST_DEFAULT_ARGS 0 EXEC) + + SET(__testTarget test_${EXEC}) + + make_directory(${PROJECT_BINARY_DIR}/test_results) + + add_custom_target(${__testTarget} + ${EXEC} ${EXEC} + COMMAND if [ -e ${PROJECT_BINARY_DIR}/test_results/${EXEC}-Results.xml ]\; then xsltproc --path ${CUNIT_SHARE_DIR} ${CUNIT_SHARE_DIR}/CUnit-Run.xsl ${PROJECT_BINARY_DIR}/test_results/${EXEC}-Results.xml > ${EXEC}-Results.html \; fi + COMMAND if [ -e ${PROJECT_BINARY_DIR}/test_results/${EXEC}-Listing.xml ]\; then xsltproc --path ${CUNIT_SHARE_DIR} ${CUNIT_SHARE_DIR}/CUnit-List.xsl ${PROJECT_BINARY_DIR}/test_results/${EXEC}-Listing.xml > ${EXEC}-Listing.html \; fi + WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/test_results + ) + ADD_DEPENDENCIES(test_cunit ${__testTarget}) +ENDMACRO(run_test) Added: incubator/celix/trunk/cmake/cmake_celix/config.properties.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/config.properties.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/config.properties.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/config.properties.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,2 @@ +cosgi.auto.start.1=@BUNDLES@ +@PROPERTIES@ Added: incubator/celix/trunk/cmake/cmake_celix/installation.cmake URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/installation.cmake?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/installation.cmake (added) +++ incubator/celix/trunk/cmake/cmake_celix/installation.cmake Tue Jul 1 06:54:57 2014 @@ -0,0 +1,30 @@ +# 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_INSTALL_COMPONENT "Framework") +GET_FILENAME_COMPONENT(__cmake_path ${CMAKE_COMMAND} PATH) +FIND_PROGRAM(CPACK_COMMAND cpack ${__cmake_path}) +MESSAGE(STATUS "Found CPack at: ${CPACK_COMMAND}") +IF(NOT CPACK_COMMAND) + MESSAGE(FATAL_ERROR "Need CPack!") +ENDIF(NOT CPACK_COMMAND) + +CONFIGURE_FILE(${CMAKE_CURRENT_LIST_DIR}/CPackConfig-Installation.in CPackConfig-Installation.cmake @ONLY) +ADD_CUSTOM_TARGET(package-release + ${CPACK_COMMAND} --config "CPackConfig-Installation.cmake" + ) + Added: incubator/celix/trunk/cmake/cmake_celix/manifest.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/manifest.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/manifest.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/manifest.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,2 @@ +Bundle-SymbolicName: @BUNDLE_SYMBOLICNAME@ +@INT_BUNDLE_EXTRAHEADER@ Added: incubator/celix/trunk/cmake/cmake_celix/run.sh.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/run.sh.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/run.sh.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/run.sh.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,2 @@ +export @LIBRARY_PATH@=@FW_PATH@:@UTILS_PATH@ +@LAUNCHER@ \ No newline at end of file Added: incubator/celix/trunk/cmake/cmake_celix/vcxproj.user.in URL: http://svn.apache.org/viewvc/incubator/celix/trunk/cmake/cmake_celix/vcxproj.user.in?rev=1606995&view=auto ============================================================================== --- incubator/celix/trunk/cmake/cmake_celix/vcxproj.user.in (added) +++ incubator/celix/trunk/cmake/cmake_celix/vcxproj.user.in Tue Jul 1 06:54:57 2014 @@ -0,0 +1,10 @@ + + + + $(MSBuildProjectDirectory)\launcher\$(Configuration)\celix.exe + $(ProjectDir)\deploy\@DEPLOY_NAME@ + WindowsLocalDebugger + PATH=@PATH@ +$(LocalDebuggerEnvironment) + + \ No newline at end of file Modified: incubator/celix/trunk/framework/CMakeLists.txt URL: http://svn.apache.org/viewvc/incubator/celix/trunk/framework/CMakeLists.txt?rev=1606995&r1=1606994&r2=1606995&view=diff ============================================================================== --- incubator/celix/trunk/framework/CMakeLists.txt (original) +++ incubator/celix/trunk/framework/CMakeLists.txt Tue Jul 1 06:54:57 2014 @@ -75,6 +75,7 @@ if (FRAMEWORK) install(TARGETS celix_framework DESTINATION lib COMPONENT framework) FILE(GLOB files "public/include/*.h") INSTALL(FILES ${files} DESTINATION include/celix COMPONENT framework) + INSTALL(DIRECTORY "${PROJECT_SOURCE_DIR}/cmake/" DESTINATION share/celix/cmake/modules COMPONENT framework) celix_subproject(FRAMEWORK_TESTS "Option to build the framework tests" "OFF" DEPS) if (FRAMEWORK_TESTS)