Mono: Turn on cmake build by default (#42119)
authorZoltan Varga <vargaz@gmail.com>
Tue, 20 Oct 2020 19:49:01 +0000 (15:49 -0400)
committerGitHub <noreply@github.com>
Tue, 20 Oct 2020 19:49:01 +0000 (21:49 +0200)
Turns it on everywhere except Windows.

src/mono/CMakeLists.txt
src/mono/mono.proj

index 31a8689..b6ebf52 100644 (file)
@@ -190,6 +190,8 @@ endif()
 # HOST OS CHECKS
 ######################################
 
+message ("CMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}")
+
 if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
   add_definitions(-D_THREAD_SAFE)
   set(HOST_DARWIN 1)
@@ -299,12 +301,22 @@ if(NOT "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "")
   endif()
 endif()
 
+# Unify naming
+if(CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
+  set(CMAKE_SYSTEM_PROCESSOR "arm")
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "i686")
+  set(CMAKE_SYSTEM_PROCESSOR "x86")
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
+  set(CMAKE_SYSTEM_PROCESSOR "arm64")
+endif()
+
+message ("CMAKE_SYSTEM_PROCESSOR=${CMAKE_SYSTEM_PROCESSOR}")
+
 if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
   set(HOST_AMD64 1)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "i686")
-  # i686 is used on android
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86")
   set(HOST_X86 1)
-elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64" OR CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
+elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
   set(HOST_ARM64 1)
 elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
   set(HOST_ARM 1)
@@ -321,22 +333,31 @@ if(NOT TARGET_ARCH)
   set(TARGET_ARCH "${CMAKE_SYSTEM_PROCESSOR}")
 endif()
 
+# Unify naming
+if(TARGET_ARCH STREQUAL "armv7l")
+  set(TARGET_ARCH "arm")
+elseif(TARGET_ARCH STREQUAL "i686")
+  set(TARGET_ARCH "x86")
+elseif(TARGET_ARCH STREQUAL "aarch64")
+  set(TARGET_ARCH "arm64")
+endif()
+
+message("TARGET_ARCH=${TARGET_ARCH}")
+
 if(TARGET_ARCH STREQUAL "x86_64")
   set(TARGET_AMD64 1)
   set(MONO_ARCHITECTURE "\"amd64\"")
-elseif(TARGET_ARCH STREQUAL "x86" OR TARGET_ARCH STREQUAL "i686")
+elseif(TARGET_ARCH STREQUAL "x86")
   set(TARGET_X86 1)
   set(MONO_ARCHITECTURE "\"x86\"")
-elseif(TARGET_ARCH STREQUAL "arm64" OR TARGET_ARCH STREQUAL "aarch64")
+elseif(TARGET_ARCH STREQUAL "arm64")
   set(TARGET_ARM64 1)
   set(MONO_ARCHITECTURE "\"arm64\"")
 elseif(TARGET_ARCH MATCHES "arm")
   set(TARGET_ARM 1)
   set(MONO_ARCHITECTURE "\"arm\"")
   # FIXME:
-  if(TARGET_IOS OR TARGET_ANDROID)
-    add_definitions("-DARM_FPU_VFP=1")
-  endif()
+  add_definitions("-DARM_FPU_VFP=1")
 elseif(TARGET_ARCH STREQUAL "wasm")
   set(MONO_ARCHITECTURE "\"wasm\"")
 else()
@@ -352,7 +373,7 @@ if(LLVM_PREFIX)
     set(llvm_codegen_libs "x86codegen")
   elseif(TARGET_ARCH STREQUAL "x86")
     set(llvm_codegen_libs "x86codegen")
-  elseif(TARGET_ARCH STREQUAL "arm64" OR TARGET_ARCH STREQUAL "aarch64")
+  elseif(TARGET_ARCH STREQUAL "arm64")
     set(llvm_codegen_libs "aarch64codegen")
   elseif(TARGET_ARCH STREQUAL "arm")
     set(llvm_codegen_libs "armcodegen")
index 92b8043..1377c55 100644 (file)
@@ -6,7 +6,8 @@
   -->
 
   <PropertyGroup>
-    <MonoEnableCMake Condition="'$(TargetsBrowser)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsAndroid)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true'">true</MonoEnableCMake>
+    <!--<MonoEnableCMake Condition="'$(TargetsBrowser)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsAndroid)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetstvOS)' == 'true'">true</MonoEnableCMake>-->
+    <MonoEnableCMake Condition="'$(TargetsWindows)' != 'true'">true</MonoEnableCMake>
     <MonoCrossDir Condition="'$(MonoCrossDir)' == '' and '$(ROOTFS_DIR)' != ''">$(ROOTFS_DIR)</MonoCrossDir>
     <MonoEnableInterpreter Condition="'$(MonoEnableInterpreter)' == ''">false</MonoEnableInterpreter>
     <ScriptExt Condition="'$(OS)' == 'Windows_NT'">.cmd</ScriptExt>
       <Output TaskParameter="ExitCode" PropertyName="MonoNinjaFound"/>
     </Exec>
     <PropertyGroup>
+      <!--
+      <_MonoVerboseArg Condition="'$(ContinuousIntegrationBuild)' == 'true' and '$(MonoNinjaFound)' == '0'">-v</_MonoVerboseArg>
+      <_MonoVerboseArg Condition="'$(ContinuousIntegrationBuild)' == 'true' and '$(MonoNinjaFound)' != '0'">VERBOSE=1</_MonoVerboseArg>
+      -->
       <MonoBuildTool Condition="'$(MonoNinjaFound)' == '0'">ninja</MonoBuildTool>
       <MonoBuildTool Condition="'$(MonoNinjaFound)' != '0'">make -j$([System.Environment]::ProcessorCount)</MonoBuildTool>
     </PropertyGroup>
          <_MonoCMakeArgs Include="-DCMAKE_TOOLCHAIN_FILE=$(RepositoryEngineeringDir)/common/cross/toolchain.cmake" />
       <_MonoBuildEnv Condition="'$(Platform)' == 'arm64'" Include="TARGET_BUILD_ARCH=arm64" />
       <_MonoBuildEnv Condition="'$(Platform)' == 'arm'" Include="TARGET_BUILD_ARCH=arm" />
+      <_MonoBuildEnv Condition="'$(Platform)' == 'arm64'" Include="PKG_CONFIG_PATH=$(MonoCrossDir)/usr/lib/aarch64-linux-gnu/pkgconfig" />
+      <_MonoBuildEnv Condition="'$(Platform)' == 'arm'" Include="PKG_CONFIG_PATH=$(MonoCrossDir)/usr/lib/arm-linux-gnueabihf/pkgconfig" />
     </ItemGroup>
 
     <!-- OSX specific options -->
     <Exec Condition="'$(TargetsBrowser)' != 'true' and '$(_MonoRunInitCompiler)' == 'false'" Command="$(_MonoCCOption) $(_MonoCXXOption) @(_MonoBuildEnv, ' ') cmake @(_MonoCMakeArgs, ' ') $(MonoProjectRoot)" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoObjDir)"/>
     <Exec Condition="'$(TargetsBrowser)' == 'true'" Command="bash -c 'source $(EMSDK_PATH)/emsdk_env.sh &amp;&amp; emcmake cmake @(_MonoCMakeArgs, ' ') $(MonoProjectRoot)'" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoObjDir)" />
     <!-- ninja/make -->
-    <Exec Condition="'$(TargetsBrowser)' != 'true'" Command="@(_MonoBuildEnv, ' ') $(MonoBuildTool) all install" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoObjDir)"/>
-    <Exec Condition="'$(TargetsBrowser)' == 'true'" Command="bash -c 'source $(EMSDK_PATH)/emsdk_env.sh &amp;&amp; $(MonoBuildTool) all install'" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoObjDir)" />
+    <Exec Condition="'$(TargetsBrowser)' != 'true'" Command="@(_MonoBuildEnv, ' ') $(MonoBuildTool) $(_MonoVerboseArg) all install" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoObjDir)"/>
+    <Exec Condition="'$(TargetsBrowser)' == 'true'" Command="bash -c 'source $(EMSDK_PATH)/emsdk_env.sh &amp;&amp; $(MonoBuildTool) $(_MonoVerboseArg) all install'" IgnoreStandardErrorWarningFormat="true" WorkingDirectory="$(MonoObjDir)" />
   </Target>
 
   <!-- Build AOT cross compiler (if available) -->