From 661de980300514c13909910b8fad07ea74bbef70 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sun, 8 Dec 2019 19:50:15 +0300 Subject: add cmake-common as a submodule --- .gitmodules | 3 ++ um/CMakeLists.txt | 2 +- um/cmake | 1 + um/common.cmake | 96 ------------------------------------------------------- 4 files changed, 5 insertions(+), 97 deletions(-) create mode 100644 .gitmodules create mode 160000 um/cmake delete mode 100644 um/common.cmake diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2ede939 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "um/cmake"] + path = um/cmake + url = https://github.com/egor-tensin/cmake-common.git diff --git a/um/CMakeLists.txt b/um/CMakeLists.txt index 487faab..7d3c525 100644 --- a/um/CMakeLists.txt +++ b/um/CMakeLists.txt @@ -1,6 +1,6 @@ project(win7drv CXX) -include(common.cmake) +include(cmake/common.cmake) add_subdirectory(service) add_subdirectory(wrappers) diff --git a/um/cmake b/um/cmake new file mode 160000 index 0000000..0136341 --- /dev/null +++ b/um/cmake @@ -0,0 +1 @@ +Subproject commit 01363414ac87384e080954d73a7eb0172cb2e3f5 diff --git a/um/common.cmake b/um/common.cmake deleted file mode 100644 index d719542..0000000 --- a/um/common.cmake +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright (c) 2017 Egor Tensin -# It's a CMake code snippet I use in all of my CMake projects. -# It makes targets link the runtime statically by default + strips debug -# symbols in release builds. -# The latest version can be found at -# https://gist.github.com/egor-tensin/cmake-common. -# Distributed under the MIT License. - -# Version: 2017-05-19T13:51:22+00:00 - -get_directory_property(parent_directory PARENT_DIRECTORY) -set(is_root_project $) - -set(USE_STATIC_RUNTIME "${is_root_project}" CACHE BOOL "Link the runtime statically") -set(STRIP_SYMBOL_TABLE "${is_root_project}" CACHE BOOL "Strip symbol tables") - -if(is_root_project) - if(MSVC) - add_compile_options(/MP /W4) - elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - add_compile_options(-Wall -Wextra) - endif() -endif() - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) - -function(use_static_runtime_msvc target) - get_target_property(target_type "${target}" TYPE) - if(target_type STREQUAL INTERFACE_LIBRARY) - else() - target_compile_options("${target}" PRIVATE - $<$:/MTd> - $<$>:/MT>) - endif() -endfunction() - -function(use_static_runtime_gcc target) - get_target_property(target_type "${target}" TYPE) - if(target_type STREQUAL EXECUTABLE) - target_link_libraries("${target}" PRIVATE -static) - endif() -endfunction() - -function(use_static_runtime target) - if(MSVC) - use_static_runtime_msvc("${target}") - elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - use_static_runtime_gcc("${target}") - else() - message(WARNING "Unrecognized toolset") - endif() -endfunction() - -function(strip_symbol_table_gcc target) - get_target_property(target_type "${target}" TYPE) - set(release_build $,$>) - if(target_type STREQUAL INTERFACE_LIBRARY) - else() - target_link_libraries("${target}" PRIVATE $<${release_build}:-s>) - endif() -endfunction() - -function(strip_symbol_table target) - if(MSVC) - elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) - strip_symbol_table_gcc("${target}") - else() - message(WARNING "Unrecognized toolset") - endif() -endfunction() - -function(apply_common_settings target) - if(TARGET "${target}") - get_target_property(target_imported "${target}" IMPORTED) - if(target_imported STREQUAL NOTFOUND OR NOT target_imported) - if(STRIP_SYMBOL_TABLE) - strip_symbol_table("${target}") - endif() - if(USE_STATIC_RUNTIME) - use_static_runtime("${target}") - endif() - endif() - endif() -endfunction() - -macro(add_executable target) - _add_executable(${ARGV}) - apply_common_settings("${target}") -endmacro() - -macro(add_library target) - _add_library(${ARGV}) - apply_common_settings("${target}") -endmacro() -- cgit v1.2.3