From 0fbb0d989e8b12c8f8afdc30e9c07aea2563ecea Mon Sep 17 00:00:00 2001 From: Peter Johnson Date: Sat, 29 Jun 2019 09:28:28 -0700 Subject: [PATCH] Update to 2020 compilers (#1733) Also link to libatomic in cmake and for Raspbian only in gradle. --- azure-pipelines.yml | 33 ++++++------------- buildSrc/build.gradle | 2 +- .../arm-frc-gnueabi.toolchain.cmake | 3 +- .../arm-pi-gnueabihf.toolchain.cmake | 2 +- shared/config.gradle | 4 +++ wpiutil/CMakeLists.txt | 9 ++++- 6 files changed, 25 insertions(+), 28 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cb0626903d..d377278a04 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,8 +5,8 @@ resources: containers: - - container: wpilib2019 - image: wpilib/roborio-cross-ubuntu:2019-18.04 + - container: wpilib2020 + image: wpilib/roborio-cross-ubuntu:2020-18.04 - container: raspbian image: wpilib/raspbian-cross-ubuntu:18.04 - container: ubuntu18 @@ -20,7 +20,7 @@ stages: pool: vmImage: 'Ubuntu 16.04' - container: wpilib2019 + container: wpilib2020 steps: - task: Gradle@2 @@ -68,7 +68,7 @@ stages: pool: vmImage: 'Ubuntu 16.04' - container: wpilib2019 + container: wpilib2020 steps: - task: Gradle@2 @@ -117,7 +117,7 @@ stages: pool: vmImage: 'Ubuntu 16.04' - container: wpilib2019 + container: wpilib2020 steps: - task: CMake@1 @@ -132,22 +132,12 @@ stages: pool: vmImage: 'windows-2019' steps: - - powershell: | - mkdir build - $ProgressPreference = 'SilentlyContinue' - wget "https://download.java.net/java/ga/jdk11/openjdk-11_windows-x64_bin.zip" -O "build\jdk.zip" - displayName: 'Download JDK' - - task: JavaToolInstaller@0 - inputs: - jdkSourceOption: localDirectory - jdkFile: 'build/jdk.zip' - jdkDestinationDirectory: 'build/jdkinst' - jdkArchitectureOption: x64 - task: Gradle@2 inputs: workingDirectory: '' gradleWrapperFile: 'gradlew' gradleOptions: '-Xmx3072m' + jdkVersionOption: '1.11' publishJUnitResults: true testResultsFiles: '**/TEST-*.xml' tasks: 'build' @@ -193,13 +183,11 @@ stages: - job: Mac pool: - vmImage: 'xcode9-macos10.13' + vmImage: 'macOS-10.14' steps: - script: | mkdir build - wget "https://download.java.net/java/ga/jdk11/openjdk-11_osx-x64_bin.tar.gz" -O "build/jdk.tar.gz" - sudo tar xvzf build/jdk.tar.gz -C /Library/Java/JavaVirtualMachines/ - export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/ + export JAVA_HOME=`/usr/libexec/java_home -v 11` displayName: 'Setup JDK' - script: | rm /Users/vsts/.gradle/init.d/log-gradle-version-plugin.gradle @@ -209,8 +197,7 @@ stages: workingDirectory: '' gradleWrapperFile: 'gradlew' gradleOptions: '-Xmx3072m' - javaHomeOption: 'path' - jdkDirectory: '/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home/' + jdkVersionOption: '1.11' publishJUnitResults: true testResultsFiles: '**/TEST-*.xml' tasks: 'build' @@ -227,7 +214,7 @@ stages: jobs: - job: CombineJob pool: - vmImage: 'xcode9-macos10.13' + vmImage: 'macOS-10.14' steps: - checkout: none diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2270bacf24..f71fabab5a 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -5,5 +5,5 @@ repositories { } } dependencies { - compile "edu.wpi.first:native-utils:2019.5.12" + compile "edu.wpi.first:native-utils:2020.0.1" } diff --git a/cmake/toolchains/arm-frc-gnueabi.toolchain.cmake b/cmake/toolchains/arm-frc-gnueabi.toolchain.cmake index 960d29b256..8e6536ac28 100644 --- a/cmake/toolchains/arm-frc-gnueabi.toolchain.cmake +++ b/cmake/toolchains/arm-frc-gnueabi.toolchain.cmake @@ -1,5 +1,4 @@ - set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version") -set(GNU_MACHINE "arm-frc2019-linux-gnueabi" CACHE STRING "GNU compiler triple") +set(GNU_MACHINE "arm-frc2020-linux-gnueabi" CACHE STRING "GNU compiler triple") set(SOFTFP yes) include("${CMAKE_CURRENT_LIST_DIR}/arm.toolchain.cmake") diff --git a/cmake/toolchains/arm-pi-gnueabihf.toolchain.cmake b/cmake/toolchains/arm-pi-gnueabihf.toolchain.cmake index 0518cbb59a..abb8027ebb 100644 --- a/cmake/toolchains/arm-pi-gnueabihf.toolchain.cmake +++ b/cmake/toolchains/arm-pi-gnueabihf.toolchain.cmake @@ -1,5 +1,5 @@ set(GCC_COMPILER_VERSION "" CACHE STRING "GCC Compiler version") -set(GNU_MACHINE "arm-raspbian9-linux-gnueabi" CACHE STRING "GNU compiler triple") +set(GNU_MACHINE "arm-raspbian10-linux-gnueabi" CACHE STRING "GNU compiler triple") if(COMMAND toolchain_save_config) return() # prevent recursive call diff --git a/shared/config.gradle b/shared/config.gradle index 2a66371269..ce8aa48b3d 100644 --- a/shared/config.gradle +++ b/shared/config.gradle @@ -22,6 +22,10 @@ toolchainsPlugin.crossCompilers.named(nativeUtils.wpi.platforms.roborio) { optional.set(true) } +nativeUtils.configurePlatform(nativeUtils.wpi.platforms.raspbian) { + linker.args << '-latomic' +} + model { components { all { diff --git a/wpiutil/CMakeLists.txt b/wpiutil/CMakeLists.txt index a904cc05b9..38b64c6471 100644 --- a/wpiutil/CMakeLists.txt +++ b/wpiutil/CMakeLists.txt @@ -26,6 +26,13 @@ endif() set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) +if (NOT MSVC) + find_library(ATOMIC NAMES atomic libatomic.so.1) + if (ATOMIC) + message(STATUS "Found libatomic: ${ATOMIC}") + endif() +endif() + GENERATE_RESOURCES(src/main/native/resources generated/main/cpp WPI wpi wpiutil_resources_src) file(GLOB_RECURSE wpiutil_native_src src/main/native/cpp/*.cpp) @@ -85,7 +92,7 @@ if (MSVC) target_compile_definitions(wpiutil PRIVATE -D_CRT_SECURE_NO_WARNINGS) endif() wpilib_target_warnings(wpiutil) -target_link_libraries(wpiutil Threads::Threads ${CMAKE_DL_LIBS}) +target_link_libraries(wpiutil Threads::Threads ${CMAKE_DL_LIBS} ${ATOMIC}) if (NOT USE_VCPKG_LIBUV) target_sources(wpiutil PRIVATE ${uv_native_src})