aboutsummaryrefslogtreecommitdiff
path: root/cmake/GetCompileFlags.cmake
diff options
context:
space:
mode:
authorFlorian Walch <florian@fwalch.com>2014-11-09 13:52:15 +0100
committerFlorian Walch <florian@fwalch.com>2014-11-09 18:34:57 +0100
commit176930fa56bff3668d434779972ceb29d41d9bc7 (patch)
tree093abec06d8d3327d01b66658f0a267d96bd8434 /cmake/GetCompileFlags.cmake
parentdcccc1a50de3caea62ab12f9e15fc6f3e242b5c4 (diff)
downloadrneovim-176930fa56bff3668d434779972ceb29d41d9bc7.tar.gz
rneovim-176930fa56bff3668d434779972ceb29d41d9bc7.tar.bz2
rneovim-176930fa56bff3668d434779972ceb29d41d9bc7.zip
version: Add compilation info.
Diffstat (limited to 'cmake/GetCompileFlags.cmake')
-rw-r--r--cmake/GetCompileFlags.cmake58
1 files changed, 58 insertions, 0 deletions
diff --git a/cmake/GetCompileFlags.cmake b/cmake/GetCompileFlags.cmake
new file mode 100644
index 0000000000..e0994b67bc
--- /dev/null
+++ b/cmake/GetCompileFlags.cmake
@@ -0,0 +1,58 @@
+function(get_compile_flags _compile_flags)
+ # Create template akin to CMAKE_C_COMPILE_OBJECT.
+ set(compile_flags "<CMAKE_C_COMPILER> <CFLAGS> <BUILD_TYPE_CFLAGS> <DEFINITIONS> <INCLUDES>")
+
+ # Get C compiler.
+ string(REPLACE
+ "<CMAKE_C_COMPILER>"
+ "${CMAKE_C_COMPILER}"
+ compile_flags
+ "${compile_flags}")
+
+ # Get flags set by add_definition().
+ get_directory_property(definitions
+ DIRECTORY "src/nvim"
+ DEFINITIONS)
+ string(REPLACE
+ "<DEFINITIONS>"
+ "${definitions}"
+ compile_flags
+ "${compile_flags}")
+
+ # Get general C flags.
+ string(REPLACE
+ "<CFLAGS>"
+ "${CMAKE_C_FLAGS}"
+ compile_flags
+ "${compile_flags}")
+
+ # Get C flags specific to build type.
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" build_type)
+ string(REPLACE
+ "<BUILD_TYPE_CFLAGS>"
+ "${CMAKE_C_FLAGS_${build_type}}"
+ compile_flags
+ "${compile_flags}")
+
+ # Get include directories.
+ get_directory_property(include_directories_list
+ DIRECTORY "src/nvim"
+ INCLUDE_DIRECTORIES)
+ foreach(include_directory ${include_directories_list})
+ set(include_directories "${include_directories} -I${include_directory}")
+ endforeach()
+ string(REPLACE
+ "<INCLUDES>"
+ "${include_directories}"
+ compile_flags
+ "${compile_flags}")
+
+ # Clean duplicate whitespace.
+ string(REPLACE
+ " "
+ " "
+ compile_flags
+ "${compile_flags}")
+
+ set(${_compile_flags} "${compile_flags}" PARENT_SCOPE)
+endfunction()