summaryrefslogtreecommitdiff
path: root/cmake/ModulePackage.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/ModulePackage.cmake')
-rw-r--r--cmake/ModulePackage.cmake27
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)
2option(ENABLE_STATIC "Build static libraries for all modules" ON) 2option(ENABLE_STATIC "Build static libraries for all modules" ON)
3option(COMPILE_AS_CXX "Compile all C code as C++ code" OFF) 3option(COMPILE_AS_CXX "Compile all C code as C++ code" OFF)
4 4
5include(FindPackageHandleStandardArgs)
6
5if(NOT ENABLE_SHARED AND NOT ENABLE_STATIC) 7if(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()
52endfunction() 79endfunction()
53 80