summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authoriphydf <iphydf@users.noreply.github.com>2016-09-18 01:31:55 +0100
committeriphydf <iphydf@users.noreply.github.com>2016-09-24 21:53:50 +0100
commit15cb4261665bab4ef02a5b1b9db48b9477c9b87a (patch)
treed0c40a45afa19fff26ce1eb5bb703e18a9acdd4a /cmake
parent0d347c2b2e69aa09b079f6daaa00007fef4fe52f (diff)
Make toxcore code C++ compatible.
It is still C code, so still compatible with C compilers as well. This change lets us see more clearly where implicit conversions occur by making them explicit.
Diffstat (limited to 'cmake')
-rw-r--r--cmake/ModulePackage.cmake13
1 files changed, 13 insertions, 0 deletions
diff --git a/cmake/ModulePackage.cmake b/cmake/ModulePackage.cmake
index 1e49503a..b963e0de 100644
--- a/cmake/ModulePackage.cmake
+++ b/cmake/ModulePackage.cmake
@@ -1,8 +1,17 @@
1option(ENABLE_SHARED "Build shared (dynamic) libraries for all modules" ON) 1option(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)
3 4
4find_package(PkgConfig REQUIRED) 5find_package(PkgConfig REQUIRED)
5 6
7function(add_c_executable exec)
8 if(COMPILE_AS_CXX)
9 set_source_files_properties(${ARGN} PROPERTIES LANGUAGE CXX)
10 endif()
11
12 add_executable(${exec} ${ARGN})
13endfunction()
14
6function(pkg_use_module mod) 15function(pkg_use_module mod)
7 pkg_search_module(${mod} ${ARGN}) 16 pkg_search_module(${mod} ${ARGN})
8 if(${mod}_FOUND) 17 if(${mod}_FOUND)
@@ -13,6 +22,10 @@ function(pkg_use_module mod)
13endfunction() 22endfunction()
14 23
15function(add_module lib) 24function(add_module lib)
25 if(COMPILE_AS_CXX)
26 set_source_files_properties(${ARGN} PROPERTIES LANGUAGE CXX)
27 endif()
28
16 if(ENABLE_SHARED) 29 if(ENABLE_SHARED)
17 add_library(${lib}_shared SHARED ${ARGN}) 30 add_library(${lib}_shared SHARED ${ARGN})
18 set_target_properties(${lib}_shared PROPERTIES OUTPUT_NAME ${lib}) 31 set_target_properties(${lib}_shared PROPERTIES OUTPUT_NAME ${lib})