File: plugin.cmake

package info (click to toggle)
codelite 17.0.0%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 136,384 kB
  • sloc: cpp: 491,550; ansic: 280,393; php: 10,259; sh: 8,930; lisp: 7,664; vhdl: 6,518; python: 6,020; lex: 4,920; yacc: 3,123; perl: 2,385; javascript: 1,715; cs: 1,193; xml: 1,110; makefile: 805; cobol: 741; sql: 709; ruby: 620; f90: 566; ada: 534; asm: 464; fortran: 350; objc: 289; tcl: 258; java: 157; erlang: 61; pascal: 51; ml: 49; awk: 44; haskell: 36
file content (74 lines) | stat: -rw-r--r-- 2,463 bytes parent folder | download | duplicates (3)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# CodeLite plugin function.
# Usage:
#
# CL_PLUGIN( "MyPlugin" )

cmake_minimum_required(VERSION 3.0)
message("-- Including plugin.cmake module")

function(CL_PLUGIN PLUGIN_NAME)
    message("-- CL_SRC_ROOT is set to ${CL_SRC_ROOT}")
    message("-- USE_PCH is set to ${USE_PCH}")
    message("-- PLUGINS_DIR is set to ${PLUGINS_DIR}")

    set(PLUGIN_EXTRA_LIBS ${ARGV1})

    if(NOT wxWidgets_USE_FILE)
        message(FATAL_ERROR "Unable to locate wxWidgets")
    endif()

    # wxWidgets include (this will do all the magic to configure everything)
    include("${wxWidgets_USE_FILE}")

    # Include paths
    include_directories("${CL_SRC_ROOT}/Plugin" "${CL_SRC_ROOT}/sdk/wxsqlite3/include" "${CL_SRC_ROOT}/CodeLite"
                        "${CL_SRC_ROOT}/PCH" "${CL_SRC_ROOT}/Interfaces")
    ## Definitions
    add_definitions(-DWXUSINGDLL_WXSQLITE3)
    add_definitions(-DWXUSINGDLL_CL)
    add_definitions(-DWXUSINGDLL_SDK)

    ## PreCompiled header support
    if(USE_PCH)
        add_definitions(-include "${CL_PCH_FILE}")
        add_definitions(-Winvalid-pch)
    endif(USE_PCH)

    ## By default, use the sources under the current folder
    file(GLOB_RECURSE PLUGIN_SRCS "${CMAKE_CURRENT_LIST_DIR}/*.cpp" "${CMAKE_CURRENT_LIST_DIR}/*.c")

    # Define the output - shared library
    add_library(${PLUGIN_NAME} SHARED ${PLUGIN_SRCS})

    # Codelite plugins doesn't use the "lib" prefix.
    set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "")
    target_link_libraries(
        ${PLUGIN_NAME}
        ${LINKER_OPTIONS}
        ${wxWidgets_LIBRARIES}
        libcodelite
        plugin
        wxsqlite3
        sqlite3lib)

    # Installation destination
    install(TARGETS ${PLUGIN_NAME} DESTINATION ${PLUGINS_DIR})
endfunction()

# Scan the top level folders of the source tree, if a folder exists and it contains the a file
# named "codelite-plugin.cmake" in it, automatically include it
function(CL_SCAN_FOR_PLUGINS)
    message("-- CMAKE_SOURCE_DIR is set to ${CMAKE_SOURCE_DIR}")
    file(
        GLOB files
        RELATIVE ${CMAKE_SOURCE_DIR}
        "*")
    foreach(dir ${files})
        if(IS_DIRECTORY ${CMAKE_SOURCE_DIR}/${dir})
            if(EXISTS ${CMAKE_SOURCE_DIR}/${dir}/codelite-plugin.cmake)
                message("-- Found user plugin at ${CMAKE_SOURCE_DIR}/${dir}")
                include(${CMAKE_SOURCE_DIR}/${dir}/codelite-plugin.cmake)
            endif()
        endif()
    endforeach()
endfunction()