Skip to content

Commit

Permalink
Added Clutter to cmake-addons
Browse files Browse the repository at this point in the history
  • Loading branch information
petrm committed May 11, 2010
1 parent ada6eee commit cf6cb7c
Show file tree
Hide file tree
Showing 5 changed files with 162 additions and 5 deletions.
2 changes: 1 addition & 1 deletion addons/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
16 changes: 13 additions & 3 deletions addons/Clutter/CMakeLists.txt
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
7 changes: 6 additions & 1 deletion modules/FindClutter.cmake
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
61 changes: 61 additions & 0 deletions modules/FindPNG.cmake
Original file line number Diff line number Diff line change
@@ -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 )
81 changes: 81 additions & 0 deletions modules/FindPango.cmake
Original file line number Diff line number Diff line change
@@ -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.