~kubuntu-members/korundum/4.11

« back to all changes in this revision

Viewing changes to CMakeLists.txt

  • Committer: Ian Monroe
  • Date: 2010-11-21 15:55:01 UTC
  • Revision ID: git-v1:c37670e4e3c59f5eb2ba112f5341a5e706217f6f
Split up Smoke into Qt and KDE directories. 
Move libsmoke stuff into the generator directory
Split up Ruby into qtruby and korundum directories

svn path=/trunk/KDE/kdebindings/ruby/; revision=1199320

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
project(Ruby)
2
 
 
3
 
set(COMPILE_RUBY FALSE CACHE INTERNAL "")
4
 
 
5
 
macro_optional_find_package(Ruby)
6
 
 
7
 
if (RUBY_LIBRARY AND RUBY_INCLUDE_DIRS AND RUBY_EXECUTABLE)
8
 
    set(COMPILE_RUBY TRUE CACHE INTERNAL "")
9
 
endif (RUBY_LIBRARY AND RUBY_INCLUDE_DIRS AND RUBY_EXECUTABLE)
10
 
 
11
 
macro_log_feature(COMPILE_RUBY "Ruby" "Ruby interpreter and libraries" "http://www.ruby-lang.org" FALSE "" "Needed to compile the Ruby bindings")
12
 
 
13
 
if (NOT COMPILE_RUBY)
14
 
    return()
15
 
endif (NOT COMPILE_RUBY)
16
 
 
17
 
SET(CUSTOM_RUBY_SITE_ARCH_DIR ${RUBY_SITEARCH_DIR} CACHE DIR "custom installation directory for ruby binary extension" )
18
 
SET(CUSTOM_RUBY_SITE_LIB_DIR ${RUBY_SITELIB_DIR} CACHE DIR "custom installation directory for ruby extension" )
19
 
 
20
 
# compute an overall version number which can be compared at once
21
 
MATH(EXPR RUBY_VERSION_NUMBER "${RUBY_VERSION_MAJOR}*10000 + ${RUBY_VERSION_MINOR}*100 + ${RUBY_VERSION_PATCH}")
22
 
 
23
 
macro_optional_add_bindings(QT_QTCORE_FOUND "QtRuby" qtruby)
24
 
macro_optional_add_bindings(QT_QTDECLARATIVE_FOUND "QtDeclarative" qtdeclarative)
25
 
macro_optional_add_bindings(QT_QTWEBKIT_FOUND "QtWebKit" qtwebkit)
26
 
macro_optional_add_bindings(QT_QTUITOOLS_FOUND "QtUiTools" qtuitools)
27
 
macro_optional_add_bindings(QT_QTSCRIPT_FOUND "QtScript" qtscript)
28
 
macro_optional_add_bindings(QT_QTTEST_FOUND "QtTest" qttest)
29
 
 
30
 
macro_optional_add_bindings(PHONON_FOUND "Phonon" phonon)
31
 
 
32
 
macro_optional_add_bindings(QSCINTILLA_FOUND "QScintilla" qscintilla)
33
 
 
34
 
macro_optional_add_bindings(Qwt5_Qt4_FOUND "Qwt" qwt)
35
 
 
36
 
macro_optional_add_bindings(Soprano_FOUND "Soprano" soprano)
37
 
 
38
 
if(KDEPIMLIBS_FOUND AND Akonadi_FOUND)
39
 
    set(BUILD_Akonadi TRUE)
40
 
else(KDEPIMLIBS_FOUND AND Akonadi_FOUND)
41
 
    set(BUILD_Akonadi FALSE)
42
 
endif(KDEPIMLIBS_FOUND AND Akonadi_FOUND)
43
 
macro_optional_add_bindings(BUILD_Akonadi "Akonadi" akonadi)
44
 
 
45
 
macro_optional_add_bindings(KDE4_FOUND "Korundum" korundum)
46
 
macro_optional_add_bindings(KDE4_FOUND "KIO" kio)
47
 
macro_optional_add_bindings(KDE4_FOUND "KHTML" khtml)
48
 
macro_optional_add_bindings(KDE4_FOUND "KTextEditor" ktexteditor)
49
 
macro_optional_add_bindings(KDE4_FOUND "Solid" solid)
50
 
macro_optional_add_bindings(KDE4_FOUND "Plasma" plasma)
51
 
 
52
 
# For nepomuk, we also must have found soprano, since soprano headers are used:
53
 
if(Soprano_FOUND AND Nepomuk_FOUND)
54
 
    set(BUILD_Nepomuk TRUE)
55
 
else(Soprano_FOUND AND Nepomuk_FOUND)
56
 
    set(BUILD_Nepomuk FALSE)
57
 
endif(Soprano_FOUND AND Nepomuk_FOUND)
58
 
macro_optional_add_bindings(BUILD_Nepomuk "Nepomuk" nepomuk)
59
 
 
60
 
macro_optional_add_bindings(OKULAR_FOUND "Okular" okular)
61
 
 
62
 
find_library(KATEINTERFACES_LIBRARY kateinterfaces HINTS ${KDE4_LIB_DIR})
63
 
find_path(KATE_INCLUDE_DIR kate/plugin.h HINTS ${KDE4_INCLUDE_DIR})
64
 
 
65
 
macro_optional_add_bindings(KATE_INCLUDE_DIR "Kate" kate)
66
 
 
67
 
#####################################################################
68
 
# Kross Ruby
69
 
 
70
 
OPTION(ENABLE_KROSSRUBY "build Kross Ruby scripting library" ON)
71
 
#OPTION(ENABLE_KROSSRUBY "build Kross Ruby scripting library" OFF)
72
 
 
73
 
if (RUBY_EXECUTABLE AND RUBY_LIBRARY AND RUBY_INCLUDE_DIRS)
74
 
    EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r mkmf -e "exit(have_func('rb_hash_foreach') ? 0 : 1)" RESULT_VARIABLE RUBY_HASH_FOREACH OUTPUT_QUIET)
75
 
    if (RUBY_HASH_FOREACH EQUAL 0)
76
 
 
77
 
        set(CMAKE_REQUIRED_INCLUDES ${RUBY_INCLUDE_DIRS})
78
 
        set(CMAKE_REQUIRED_LIBRARIES ${RUBY_LIBRARY})
79
 
        CHECK_CXX_SOURCE_COMPILES("
80
 
            #include <ruby.h>
81
 
            int main() { ruby_init(); return 0; }" RubyCompiles)
82
 
        if(RubyCompiles)
83
 
            if(ENABLE_KROSSRUBY AND RUBY_VERSION_MAJOR EQUAL 1 AND RUBY_VERSION_MINOR LESS 9)
84
 
                set(BUILD_KrossRuby TRUE)
85
 
            endif(ENABLE_KROSSRUBY AND RUBY_VERSION_MAJOR EQUAL 1 AND RUBY_VERSION_MINOR LESS 9)
86
 
        else(RubyCompiles)
87
 
            message(STATUS "Failed to compile a C++ program that embeds ruby.")
88
 
        endif(RubyCompiles)
89
 
 
90
 
    else (RUBY_HASH_FOREACH EQUAL 0)
91
 
 
92
 
        # 2007-02-12 sebsauer; this is a workaround for the case we failed to load
93
 
        # the "mkmf" library what is the case e.g. on some debian distributions.
94
 
        #EXECUTE_PROCESS(COMMAND ${RUBY_EXECUTABLE} -r mkmf -e "exit(0)" RESULT_VARIABLE RUBY_HASH_FOREACH OUTPUT_QUIET ERROR_QUIET)
95
 
        #if (${RUBY_HASH_FOREACH} EQUAL 0)
96
 
        message(STATUS "The detected Ruby is too old for kross. A Ruby which has rb_hash_foreach is required. Upgrade to 1.8.2 or later")
97
 
        #else (${RUBY_HASH_FOREACH} EQUAL 0)
98
 
        #    message(STATUS "Failed to load the Ruby mkmf library. Please install the Ruby developer packages.")
99
 
        #endif (${RUBY_HASH_FOREACH} EQUAL 0)
100
 
 
101
 
    endif (RUBY_HASH_FOREACH EQUAL 0)
102
 
endif (RUBY_EXECUTABLE AND RUBY_LIBRARY AND RUBY_INCLUDE_DIRS)
103
 
message(STATUS "Ruby Executable: " ${RUBY_EXECUTABLE})
104
 
message(STATUS "Ruby Libraries: " ${RUBY_LIBRARY})
105
 
message(STATUS "Ruby Include Directories: " ${RUBY_INCLUDE_DIRS})
106
 
 
107
 
macro_optional_add_bindings(BUILD_KrossRuby "KrossRuby" krossruby)
108
 
 
109
 
macro_display_bindings_log()
 
1
add_subdirectory( qtruby )
 
2
add_subdirectory( korundum )
 
3