diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/ModulePackage.cmake | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/cmake/ModulePackage.cmake b/cmake/ModulePackage.cmake index b963e0de..fa3779c3 100644 --- a/cmake/ModulePackage.cmake +++ b/cmake/ModulePackage.cmake | |||
@@ -4,11 +4,19 @@ option(COMPILE_AS_CXX "Compile all C code as C++ code" OFF) | |||
4 | 4 | ||
5 | find_package(PkgConfig REQUIRED) | 5 | find_package(PkgConfig REQUIRED) |
6 | 6 | ||
7 | function(add_c_executable exec) | 7 | function(set_source_language) |
8 | if(COMPILE_AS_CXX) | 8 | if(COMPILE_AS_CXX) |
9 | set_source_files_properties(${ARGN} PROPERTIES LANGUAGE CXX) | 9 | foreach(srcfile ${ARGN}) |
10 | get_filename_component(srcext ${srcfile} EXT) | ||
11 | if(${srcext} STREQUAL ".c") | ||
12 | set_source_files_properties(${srcfile} PROPERTIES LANGUAGE CXX) | ||
13 | endif() | ||
14 | endforeach() | ||
10 | endif() | 15 | endif() |
16 | endfunction() | ||
11 | 17 | ||
18 | function(add_c_executable exec) | ||
19 | set_source_language(${ARGN}) | ||
12 | add_executable(${exec} ${ARGN}) | 20 | add_executable(${exec} ${ARGN}) |
13 | endfunction() | 21 | endfunction() |
14 | 22 | ||
@@ -22,9 +30,7 @@ function(pkg_use_module mod) | |||
22 | endfunction() | 30 | endfunction() |
23 | 31 | ||
24 | function(add_module lib) | 32 | function(add_module lib) |
25 | if(COMPILE_AS_CXX) | 33 | set_source_language(${ARGN}) |
26 | set_source_files_properties(${ARGN} PROPERTIES LANGUAGE CXX) | ||
27 | endif() | ||
28 | 34 | ||
29 | if(ENABLE_SHARED) | 35 | if(ENABLE_SHARED) |
30 | add_library(${lib}_shared SHARED ${ARGN}) | 36 | add_library(${lib}_shared SHARED ${ARGN}) |