diff options
Diffstat (limited to 'cmake/ModulePackage.cmake')
-rw-r--r-- | cmake/ModulePackage.cmake | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/cmake/ModulePackage.cmake b/cmake/ModulePackage.cmake index 3a4eb9b9..4d22ee41 100644 --- a/cmake/ModulePackage.cmake +++ b/cmake/ModulePackage.cmake | |||
@@ -2,6 +2,8 @@ option(ENABLE_SHARED "Build shared (dynamic) libraries for all modules" ON) | |||
2 | option(ENABLE_STATIC "Build static libraries for all modules" ON) | 2 | option(ENABLE_STATIC "Build static libraries for all modules" ON) |
3 | option(COMPILE_AS_CXX "Compile all C code as C++ code" OFF) | 3 | option(COMPILE_AS_CXX "Compile all C code as C++ code" OFF) |
4 | 4 | ||
5 | include(FindPackageHandleStandardArgs) | ||
6 | |||
5 | if(NOT ENABLE_SHARED AND NOT ENABLE_STATIC) | 7 | if(NOT ENABLE_SHARED AND NOT ENABLE_STATIC) |
6 | message(WARNING | 8 | message(WARNING |
7 | "Both static and shared libraries are disabled; " | 9 | "Both static and shared libraries are disabled; " |
@@ -48,6 +50,31 @@ function(pkg_use_module mod pkg) | |||
48 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${dir}" PARENT_SCOPE) | 50 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${dir}" PARENT_SCOPE) |
49 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${dir}" PARENT_SCOPE) | 51 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${dir}" PARENT_SCOPE) |
50 | endforeach() | 52 | endforeach() |
53 | else() | ||
54 | set(${mod}_DEFINITIONS ${${mod}_CFLAGS_OTHER}) | ||
55 | find_path(${mod}_INCLUDE_DIR NAMES ${ARGV1}.h | ||
56 | HINTS ${${mod}_INCLUDEDIR} ${${mod}_INCLUDE_DIRS} | ||
57 | PATH_SUFFIXES ${ARGV1}) | ||
58 | find_library(${mod}_LIBRARY NAMES ${ARGV1} lib${ARGV1} | ||
59 | HINTS ${${mod}_LIBDIR} ${${mod}_LIBRARY_DIRS}) | ||
60 | find_package_handle_standard_args(${mod} DEFAULT_MSG | ||
61 | ${mod}_LIBRARY ${mod}_INCLUDE_DIR) | ||
62 | |||
63 | if(${mod}_FOUND) | ||
64 | mark_as_advanced(${mod}_INCLUDE_DIR ${mod}_LIBRARY) | ||
65 | set(${mod}_LIBRARIES ${${mod}_LIBRARY} PARENT_SCOPE) | ||
66 | set(${mod}_INCLUDE_DIRS ${${mod}_INCLUDE_DIR} PARENT_SCOPE) | ||
67 | set(${mod}_FOUND TRUE PARENT_SCOPE) | ||
68 | link_directories(${${mod}_LIBRARY_DIRS}) | ||
69 | include_directories(${${mod}_INCLUDE_DIRS}) | ||
70 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${mod}_CFLAGS_OTHER}" PARENT_SCOPE) | ||
71 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${mod}_CFLAGS_OTHER}" PARENT_SCOPE) | ||
72 | |||
73 | foreach(dir ${${mod}_INCLUDE_DIRS}) | ||
74 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -isystem ${dir}" PARENT_SCOPE) | ||
75 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -isystem ${dir}" PARENT_SCOPE) | ||
76 | endforeach() | ||
77 | endif() | ||
51 | endif() | 78 | endif() |
52 | endfunction() | 79 | endfunction() |
53 | 80 | ||