diff options
-rw-r--r-- | Modules/Compiler/Clang-FindBinUtils.cmake | 2 | ||||
-rw-r--r-- | Modules/Compiler/GNU-FindBinUtils.cmake | 2 | ||||
-rw-r--r-- | Modules/GetPrerequisites.cmake | 2 | ||||
-rw-r--r-- | Modules/Platform/Android-Common.cmake | 8 | ||||
-rw-r--r-- | Source/CMakeVersion.cmake | 2 | ||||
-rw-r--r-- | Source/cmVS10RCFlagTable.h | 1 | ||||
-rw-r--r-- | Source/cmVS11RCFlagTable.h | 1 | ||||
-rw-r--r-- | Source/cmVS12RCFlagTable.h | 1 | ||||
-rw-r--r-- | Source/cmVS14RCFlagTable.h | 1 | ||||
-rw-r--r-- | Source/cmVisualStudio10TargetGenerator.cxx | 4 | ||||
-rw-r--r-- | Tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | Tests/CSharpLinkToCxx/CMakeLists.txt | 17 | ||||
-rw-r--r-- | Tests/CSharpLinkToCxx/cli.cpp | 10 | ||||
-rw-r--r-- | Tests/CSharpLinkToCxx/cli.hpp | 10 | ||||
-rw-r--r-- | Tests/CSharpLinkToCxx/csharp.cs | 16 | ||||
-rw-r--r-- | Tests/VSResource/CMakeLists.txt | 4 |
16 files changed, 74 insertions, 8 deletions
diff --git a/Modules/Compiler/Clang-FindBinUtils.cmake b/Modules/Compiler/Clang-FindBinUtils.cmake index c81e77a..e2822a1 100644 --- a/Modules/Compiler/Clang-FindBinUtils.cmake +++ b/Modules/Compiler/Clang-FindBinUtils.cmake @@ -16,6 +16,7 @@ find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES HINTS ${__clang_hints} DOC "LLVM archiver" ) +mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR) # http://manpages.ubuntu.com/manpages/precise/en/man1/llvm-ranlib.1.html find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES @@ -23,3 +24,4 @@ find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES HINTS ${__clang_hints} DOC "Generate index for LLVM archive" ) +mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB) diff --git a/Modules/Compiler/GNU-FindBinUtils.cmake b/Modules/Compiler/GNU-FindBinUtils.cmake index 142636c..16b7bbd 100644 --- a/Modules/Compiler/GNU-FindBinUtils.cmake +++ b/Modules/Compiler/GNU-FindBinUtils.cmake @@ -22,6 +22,7 @@ find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR NAMES HINTS ${__gcc_hints} DOC "A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler" ) +mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_AR) # http://manpages.ubuntu.com/manpages/wily/en/man1/gcc-ranlib.1.html find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES @@ -31,3 +32,4 @@ find_program(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB NAMES HINTS ${__gcc_hints} DOC "A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler" ) +mark_as_advanced(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_RANLIB) diff --git a/Modules/GetPrerequisites.cmake b/Modules/GetPrerequisites.cmake index 0090cdc..4e52cb3 100644 --- a/Modules/GetPrerequisites.cmake +++ b/Modules/GetPrerequisites.cmake @@ -609,7 +609,7 @@ function(gp_resolved_file_type original_file file exepath dirs type_var) if(NOT is_embedded) if(NOT IS_ABSOLUTE "${resolved_file}") - if(lower MATCHES "^msvc[^/]+dll" AND is_system) + if(lower MATCHES "^(msvc|api-ms-win-)[^/]+dll" AND is_system) message(STATUS "info: non-absolute msvc file '${file}' returning type '${type}'") else() message(STATUS "warning: gp_resolved_file_type non-absolute file '${file}' returning type '${type}' -- possibly incorrect") diff --git a/Modules/Platform/Android-Common.cmake b/Modules/Platform/Android-Common.cmake index ac72676..6360376 100644 --- a/Modules/Platform/Android-Common.cmake +++ b/Modules/Platform/Android-Common.cmake @@ -160,9 +160,13 @@ macro(__android_compiler_common lang) # Do not do this for a standalone toolchain because it is already # tied to a specific API version. if(CMAKE_ANDROID_NDK) - list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_SYSROOT}/usr/include") if(NOT CMAKE_ANDROID_NDK_DEPRECATED_HEADERS) - list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_SYSROOT}/usr/include/${CMAKE_ANDROID_ARCH_HEADER_TRIPLE}") + list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES + "${CMAKE_SYSROOT_COMPILE}/usr/include" + "${CMAKE_SYSROOT_COMPILE}/usr/include/${CMAKE_ANDROID_ARCH_HEADER_TRIPLE}" + ) + else() + list(APPEND CMAKE_${lang}_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_SYSROOT}/usr/include") endif() list(REMOVE_ITEM CMAKE_${lang}_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include") endif() diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index e458a96..3806de0 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,4 +2,4 @@ set(CMake_VERSION_MAJOR 3) set(CMake_VERSION_MINOR 9) set(CMake_VERSION_PATCH 0) -set(CMake_VERSION_RC 3) +set(CMake_VERSION_RC 4) diff --git a/Source/cmVS10RCFlagTable.h b/Source/cmVS10RCFlagTable.h index 32f35e5..6e2b834 100644 --- a/Source/cmVS10RCFlagTable.h +++ b/Source/cmVS10RCFlagTable.h @@ -1,6 +1,7 @@ static cmVS7FlagTable cmVS10RCFlagTable[] = { // Bool Properties { "NullTerminateStrings", "n", "", "true", 0 }, + { "SuppressStartupBanner", "nologo", "", "true", 0 }, { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVS11RCFlagTable.h b/Source/cmVS11RCFlagTable.h index 666e434..4997fe1 100644 --- a/Source/cmVS11RCFlagTable.h +++ b/Source/cmVS11RCFlagTable.h @@ -1,6 +1,7 @@ static cmVS7FlagTable cmVS11RCFlagTable[] = { // Bool Properties { "NullTerminateStrings", "n", "", "true", 0 }, + { "SuppressStartupBanner", "nologo", "", "true", 0 }, { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVS12RCFlagTable.h b/Source/cmVS12RCFlagTable.h index d047f824..a650f85 100644 --- a/Source/cmVS12RCFlagTable.h +++ b/Source/cmVS12RCFlagTable.h @@ -1,6 +1,7 @@ static cmVS7FlagTable cmVS12RCFlagTable[] = { // Bool Properties { "NullTerminateStrings", "n", "", "true", 0 }, + { "SuppressStartupBanner", "nologo", "", "true", 0 }, { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVS14RCFlagTable.h b/Source/cmVS14RCFlagTable.h index 11e00d5..5dc8d5a 100644 --- a/Source/cmVS14RCFlagTable.h +++ b/Source/cmVS14RCFlagTable.h @@ -1,6 +1,7 @@ static cmVS7FlagTable cmVS14RCFlagTable[] = { // Bool Properties { "NullTerminateStrings", "n", "", "true", 0 }, + { "SuppressStartupBanner", "nologo", "", "true", 0 }, { 0, 0, 0, 0, 0 } }; diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index 67c02b2..de1f5b0 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -3500,10 +3500,6 @@ void cmVisualStudio10TargetGenerator::WriteProjectReferences() ->TargetIsFortranOnly(dt)) { continue; } - if (csproj == this->ProjectType && - !this->GlobalGenerator->TargetIsCSharpOnly(dt)) { - continue; - } this->WriteString("<ProjectReference Include=\"", 2); cmLocalGenerator* lg = dt->GetLocalGenerator(); std::string name = dt->GetName(); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index d138f58..d16df1c 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -331,6 +331,7 @@ if(BUILD_TESTING) if(${CMAKE_GENERATOR} MATCHES "Visual Studio ([^89]|[89][0-9])") ADD_TEST_MACRO(CSharpOnly CSharpOnly) + ADD_TEST_MACRO(CSharpLinkToCxx CSharpLinkToCxx) endif() ADD_TEST_MACRO(COnly COnly) diff --git a/Tests/CSharpLinkToCxx/CMakeLists.txt b/Tests/CSharpLinkToCxx/CMakeLists.txt new file mode 100644 index 0000000..c4269e0 --- /dev/null +++ b/Tests/CSharpLinkToCxx/CMakeLists.txt @@ -0,0 +1,17 @@ +# test if CSharp application correctly links +# to managed C++ binary +cmake_minimum_required(VERSION 3.9) +project (CSharpLinkToCxx CXX CSharp) + +# we have to change the default flags for the +# managed C++ project to build +string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) +string(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG}) + +add_library(CLIApp SHARED cli.hpp cli.cpp) + +target_compile_options(CLIApp PRIVATE "/clr") + +add_executable(CSharpLinkToCxx csharp.cs) + +target_link_libraries(CSharpLinkToCxx CLIApp) diff --git a/Tests/CSharpLinkToCxx/cli.cpp b/Tests/CSharpLinkToCxx/cli.cpp new file mode 100644 index 0000000..97ac724 --- /dev/null +++ b/Tests/CSharpLinkToCxx/cli.cpp @@ -0,0 +1,10 @@ +#include "cli.hpp" + +using namespace System; + +namespace CLIApp { +void MyCli::testMyCli() +{ + Console::WriteLine("#message from CLIApp"); +} +} diff --git a/Tests/CSharpLinkToCxx/cli.hpp b/Tests/CSharpLinkToCxx/cli.hpp new file mode 100644 index 0000000..a8c116d --- /dev/null +++ b/Tests/CSharpLinkToCxx/cli.hpp @@ -0,0 +1,10 @@ +#pragma once + +namespace CLIApp { +public +ref class MyCli +{ +public: + void testMyCli(); +}; +} diff --git a/Tests/CSharpLinkToCxx/csharp.cs b/Tests/CSharpLinkToCxx/csharp.cs new file mode 100644 index 0000000..35c5cc3 --- /dev/null +++ b/Tests/CSharpLinkToCxx/csharp.cs @@ -0,0 +1,16 @@ +using System; +using CLIApp; + +namespace CSharpLinkToCxx +{ + internal class CSharpLinkToCxx + { + public static void Main(string[] args) + { + Console.WriteLine("#message from CSharpLinkToCxx"); + + var app = new MyCli(); + app.testMyCli(); + } + } +} diff --git a/Tests/VSResource/CMakeLists.txt b/Tests/VSResource/CMakeLists.txt index ee660ed..718e624 100644 --- a/Tests/VSResource/CMakeLists.txt +++ b/Tests/VSResource/CMakeLists.txt @@ -50,5 +50,9 @@ add_library(ResourceLib STATIC lib.cpp lib.rc) add_executable(VSResource main.cpp test.rc) target_link_libraries(VSResource ResourceLib) +if(MSVC AND NOT MSVC_VERSION VERSION_LESS 1600) + set_property(SOURCE test.rc PROPERTY COMPILE_FLAGS /nologo) +endif() + set_property(TARGET VSResource PROPERTY VS_GLOBAL_CMakeTestVsGlobalVariable "test val") |