-
Bug
-
Resolution: Not A Defect
-
Blocker
-
None
-
Jenkins ver. 2.164.3
Cmake plugin version 2.6.1
Jenkins slave running on windows machine as a service.
Jenkins pipeline snippet:
def cmake_tasks() { def tasks=[:] def steps = [[withCmake: true]] def os = "windows" def config = "Debug" def generator = "Ninja" // ==== addidional env vars ==== def vars=""" LIB=C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\LIB\\amd64;C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\ATLMFC\\LIB\\amd64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.17763.0\\ucrt\\x64;C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.6.1\\lib\\um\\x64;C:\\Program Files (x86)\\Windows Kits\\10\\lib\\10.0.17763.0um\\x64; PATH=C:\\Program Files (x86)\\MSBuild\\14.0\\binamd64;C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\amd64;C:\\Windows\\Microsoft.NET\\Framework64\\v4.0.30319;C:\\Windows\\Microsoft.NET\\Framework64;C:\\Program Files (x86)\\Windows Kits\\10\\binx64;C:\\Program Files (x86)\\Windows Kits\\10\\binx86;C:\\Program Files (x86)\\Microsoft SDKs\\Windows\\v10.0A\\bin\\NETFX 4.6.1 Tools\\x64;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\CMake\\bin;c:\\windows\\system32;C:\\ Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0libnvvp;g:\\Bin; """ // another variant, also does not affect CMake // vars = bat returnStdout: true, script: """ //@call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64 //set //""" // third variant, also doesn't work // bat """call c:\Path\to\Visual\Studio\vcvarsall.bat // set > build.props""" // var = readFile("build.props") def cmakeArgs = "-DARG=VALUE" def cmake_inst = 'InSearchPath' steps.add([envVars: vars]) cmakeArgs = cmakeArgs + " -DCMAKE_C_COMPILER=cl -DCMAKE_CXX_COMPILER=cl -DCMAKE_MAKE_PROGRAM=g:\\Bin\\ninja" tasks["${os}"] = { node("${os}"){ stage("${os}/${config}") { withEnv([vars]){ if (os == "windows"){ bat "set | sort" println vars println steps } cmakeBuild(buildDir: "build_${config}", buildType: config, cleanBuild: true, cmakeArgs: cmakeArgs, generator: generator, installation: cmake_inst, sourceDir: ".", steps: steps) } } } } return tasks } pipeline { agent none stages{ stage('Configurte') { steps{ script { parallel cmake_tasks() } } } } }
Snippet of CMakeLists.txt
cmake_minimum_required(VERSION 3.12) message(STATUS "LIB value = $ENV{LIB}") message(STATUS "PATH value = $ENV{PATH}")
Result:
I see LIB and PATH in output of "set | sort " and both println's inside if(os == "windows") block.
But output of cmake shows only default environment variables. LIB is unset, PATH is default
LIB value = PATH value = C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\CMake\\bin;c:\\windows\\system32;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0bin;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v7.0\\libnvvp;g:\\Bin;