File: SimPlugins.cmake

package info (click to toggle)
sim 0.9.5~svn20080806-1
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 18,108 kB
  • ctags: 11,570
  • sloc: cpp: 119,605; sh: 9,986; ansic: 3,312; perl: 2,752; lex: 1,533; makefile: 839; xml: 206; python: 56
file content (60 lines) | stat: -rw-r--r-- 2,063 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# Searching and enabling plugins
MACRO(SIM_ADD_PLUGIN _name)
    PROJECT(${_name})
    
    SET(_srcs ${${_name}_SRCS})
    SET(_hdrs ${${_name}_HDRS})
    SET(_uics ${${_name}_UICS})
    SET(_libs ${${_name}_LIBS})

    KDE3_AUTOMOC(${_srcs})
    
    QT3_ADD_UI_FILES(_srcs ${_uics})

    ADD_LIBRARY(${_name} SHARED ${_srcs} ${_hdrs})

    INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})

    TARGET_LINK_LIBRARIES(${_name} simlib ${_libs})

    SET_TARGET_PROPERTIES(${_name} PROPERTIES PREFIX "")

    INSTALL(TARGETS ${_name} LIBRARY DESTINATION ${SIM_PLUGIN_DIR} RUNTIME  DESTINATION ${SIM_PLUGIN_DIR})
ENDMACRO(SIM_ADD_PLUGIN)

MACRO(SIM_FIND_PLUGINS sim_plugin_dir)
    FILE(GLOB plugins_dir ${sim_plugin_dir}/* )
    FOREACH(_cur_dir ${plugins_dir})
        FILE(GLOB cmakefile ${_cur_dir}/CMakeLists.txt)
        IF(cmakefile)
            GET_FILENAME_COMPONENT(plugin ${_cur_dir} NAME_WE)
            
            STRING(TOUPPER ${plugin} uc_plugin)
            OPTION(ENABLE_PLUGIN_${uc_plugin}  "Enable plugin ${plugin}" ON)

            # all plugins starting with _ are *not* optional!
            IF(${uc_plugin} MATCHES "^_.*$")
                ## prepend
                SET(SIM_PLUGINS ${plugin} ${SIM_PLUGINS})
                MARK_AS_ADVANCED(ENABLE_PLUGIN_${uc_plugin})
            ELSE(${uc_plugin} MATCHES "^_.*$")
                ## append
                SET(SIM_PLUGINS ${SIM_PLUGINS} ${plugin})
            ENDIF(${uc_plugin} MATCHES "^_.*$")
            

        ENDIF(cmakefile)
    ENDFOREACH(_cur_dir)
ENDMACRO(SIM_FIND_PLUGINS sim_plugin_dir)

MACRO(SIM_INCLUDE_PLUGINS)
    FOREACH(plugin ${SIM_PLUGINS})
        STRING(TOUPPER ${plugin} uc_plugin)
        IF(ENABLE_PLUGIN_${uc_plugin})
            MESSAGE(STATUS "Using plugin " ${plugin})
            ADD_SUBDIRECTORY(plugins/${plugin})
        ELSE(ENABLE_PLUGIN_${uc_plugin})
            MESSAGE(STATUS "Skipping plugin " ${plugin})
        ENDIF(ENABLE_PLUGIN_${uc_plugin})
    ENDFOREACH(plugin ${SIM_PLUGINS})
ENDMACRO(SIM_INCLUDE_PLUGINS)