Skip to content
Browse files

Added Clutter to cmake-addons

  • Loading branch information...
1 parent ada6eee commit cf6cb7c55721a4005bff847f3c2e1d50b2515cae @petrm petrm committed May 11, 2010
Showing with 162 additions and 5 deletions.
  1. +1 −1 addons/CMakeLists.txt
  2. +13 −3 addons/Clutter/CMakeLists.txt
  3. +6 −1 modules/FindClutter.cmake
  4. +61 −0 modules/FindPNG.cmake
  5. +81 −0 modules/FindPango.cmake
View
2 addons/CMakeLists.txt
@@ -49,7 +49,7 @@ add_subdirectory(Box)
add_subdirectory(CFFI)
add_subdirectory(CGI)
add_subdirectory(Cairo)
-#add_subdirectory(Clutter) # XXX: Unresolved dependencies, glib, pango
+add_subdirectory(Clutter) # XXX: Unresolved dependencies, glib, pango
add_subdirectory(ContinuedFraction)
add_subdirectory(Curses)
add_subdirectory(DBI)
View
16 addons/Clutter/CMakeLists.txt 100644 → 100755
@@ -5,18 +5,24 @@
# Find clutter
find_package(Clutter)
+find_package(GLIB2)
+find_package(Pango)
+find_package(Cairo)
# Create the _build bundle hierarchy if needed.
make_build_bundle(_build)
# Did we find clutter? if so, set up the targets and all the support
# variables.
-if(CLUTTER_FOUND)
+if(CLUTTER_FOUND AND GLIB2_FOUND AND Pango_1_0_FOUND AND CAIRO_FOUND)
# Output our dynamic library to the top-level _build hierarchy
set(LIBRARY_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR}/_build/dll)
# Additional include directories
include_directories(${CLUTTER_INCLUDE_DIR})
+ include_directories(${GLIB2_INCLUDE_DIRS})
+ include_directories(${Pango_1_0_INCLUDE_DIR})
+ include_directories(${CAIRO_INCLUDE_DIRS})
# Generate the IoClutterInit.c file.
# Argument SHOULD ALWAYS be the exact name of the addon, case is
@@ -42,9 +48,13 @@ if(CLUTTER_FOUND)
# Now build the shared library
add_library(IoClutter SHARED ${SRCS})
add_dependencies(IoClutter iovmall)
- target_link_libraries(IoClutter iovmall ${CLUTTER_LIBRARY})
+ target_link_libraries(IoClutter iovmall
+ ${CLUTTER_LIBRARY}
+ ${GLIB2_LIBRARIES}
+ ${Pango_1_0_LIBRARIES}
+ ${CAIRO_LIBRARIES})
# Install the addon to our global addons hierarchy.
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/io/addons)
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/_build DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/io/addons/Clutter)
-endif(CLUTTER_FOUND)
+endif(CLUTTER_FOUND AND GLIB2_FOUND AND Pango_1_0_FOUND AND CAIRO_FOUND)
View
7 modules/FindClutter.cmake 100644 → 100755
@@ -3,12 +3,17 @@
#
# Find libclutter.
-FIND_PATH(CLUTTER_INCLUDE_DIR clutter/clutter.h /usr/local/include/clutter-1.0/ /usr/local/clutter-1.0/)
+FIND_PATH(CLUTTER_INCLUDE_DIR clutter/clutter.h /usr/include/clutter-1.0/ /usr/local/include/clutter-1.0/ /usr/local/clutter-1.0/)
SET(CLUTTER_NAMES ${CLUTTER_NAMES} clutter libclutter)
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
LIST(APPEND CLUTTER_NAMES clutter-osx-1.0)
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+
+IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+ LIST(APPEND CLUTTER_NAMES clutter-glx-1.0)
+ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+
FIND_LIBRARY(CLUTTER_LIBRARY NAMES ${CLUTTER_NAMES} PATH)
IF(CLUTTER_INCLUDE_DIR AND CLUTTER_LIBRARY)
View
61 modules/FindPNG.cmake
@@ -0,0 +1,61 @@
+# - Find the native PNG includes and library
+#
+# This module defines
+# PNG_INCLUDE_DIR, where to find png.h, etc.
+# PNG_LIBRARIES, the libraries to link against to use PNG.
+# PNG_DEFINITIONS - You should add_definitons(${PNG_DEFINITIONS}) before compiling code that includes png library files.
+# PNG_FOUND, If false, do not try to use PNG.
+# also defined, but not for general use are
+# PNG_LIBRARY, where to find the PNG library.
+# None of the above will be defined unles zlib can be found.
+# PNG depends on Zlib
+
+#=============================================================================
+# Copyright 2002-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+if(PNG_FIND_QUIETLY)
+ set(_FIND_ZLIB_ARG QUIET)
+endif(PNG_FIND_QUIETLY)
+find_package(ZLIB ${_FIND_ZLIB_ARG})
+
+if(ZLIB_FOUND)
+ find_path(PNG_PNG_INCLUDE_DIR png.h
+ /usr/local/include/libpng # OpenBSD
+ )
+
+ set(PNG_NAMES ${PNG_NAMES} png libpng png14 libpng14 png14d libpng14d png12 libpng12 png12d libpng12d)
+ find_library(PNG_LIBRARY NAMES ${PNG_NAMES} )
+
+ if (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
+ # png.h includes zlib.h. Sigh.
+ SET(PNG_INCLUDE_DIR ${PNG_PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR} )
+ SET(PNG_LIBRARIES ${PNG_LIBRARY} ${ZLIB_LIBRARY})
+
+ if (CYGWIN)
+ if(BUILD_SHARED_LIBS)
+ # No need to define PNG_USE_DLL here, because it's default for Cygwin.
+ else(BUILD_SHARED_LIBS)
+ SET (PNG_DEFINITIONS -DPNG_STATIC)
+ endif(BUILD_SHARED_LIBS)
+ endif (CYGWIN)
+
+ endif (PNG_LIBRARY AND PNG_PNG_INCLUDE_DIR)
+
+endif(ZLIB_FOUND)
+
+# handle the QUIETLY and REQUIRED arguments and set PNG_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(PNG DEFAULT_MSG PNG_LIBRARY PNG_PNG_INCLUDE_DIR)
+
+mark_as_advanced(PNG_PNG_INCLUDE_DIR PNG_LIBRARY )
View
81 modules/FindPango.cmake
@@ -0,0 +1,81 @@
+# Copyright (c) 2009, Whispersoft s.r.l.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Whispersoft s.r.l. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "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 COPYRIGHT
+# OWNER OR CONTRIBUTORS 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.
+#
+# Finds Pango library
+#
+# Pango_1_0_INCLUDE_DIR - where to find pango.h, etc.
+# Pango_1_0_LIBRARIES - List of libraries when using Pango.
+# Pango_1_0_FOUND - True if Pango found.
+#
+
+if (Pango_1_0_INCLUDE_DIR)
+ # Already in cache, be silent
+ set(Pango_1_0_FIND_QUIETLY TRUE)
+endif (Pango_1_0_INCLUDE_DIR)
+
+find_path(Pango_1_0_INCLUDE_DIR pango/pango.h
+ /opt/local/include
+ /usr/local/include
+ /usr/include
+ /opt/local/include/pango-1.0
+ /usr/local/include/pango-1.0
+ /usr/include/pango-1.0
+)
+
+set(Pango_1_0_NAMES pango-1.0)
+find_library(Pango_1_0_LIBRARY
+ NAMES ${Pango_1_0_NAMES}
+ PATHS /usr/lib /usr/local/lib /opt/local/lib
+)
+
+if (Pango_1_0_INCLUDE_DIR AND Pango_1_0_LIBRARY)
+ set(Pango_1_0_FOUND TRUE)
+ set( Pango_1_0_LIBRARIES ${Pango_1_0_LIBRARY} )
+else (Pango_1_0_INCLUDE_DIR AND Pango_1_0_LIBRARY)
+ set(Pango_1_0_FOUND FALSE)
+ set(Pango_1_0_LIBRARIES)
+endif (Pango_1_0_INCLUDE_DIR AND Pango_1_0_LIBRARY)
+
+if (Pango_1_0_FOUND)
+ if (NOT Pango_1_0_FIND_QUIETLY)
+ message(STATUS "Found Pango_1_0: ${Pango_1_0_LIBRARY}")
+ endif (NOT Pango_1_0_FIND_QUIETLY)
+else (Pango_1_0_FOUND)
+ if (Pango_1_0_FIND_REQUIRED)
+ message(STATUS "Looked for Pango_1_0 libraries named ${Pango_1_0_NAMES}.")
+ message(STATUS "Include file detected: [${Pango_1_0_INCLUDE_DIR}].")
+ message(STATUS "Lib file detected: [${Pango_1_0_LIBRARY}].")
+ message(FATAL_ERROR "=========> Could NOT find Pango_1_0 library")
+ endif (Pango_1_0_FIND_REQUIRED)
+endif (Pango_1_0_FOUND)
+
+mark_as_advanced(
+ Pango_1_0_LIBRARY
+ Pango_1_0_INCLUDE_DIR
+ )

0 comments on commit cf6cb7c

Please sign in to comment.
Something went wrong with that request. Please try again.