@@ -21,7 +21,7 @@ import semverValid from "semver/functions/valid"
2121import { getVersion } from "./default_versions"
2222import { setupGcc } from "./gcc/gcc"
2323import { InstallationInfo } from "./utils/setup/setupBin"
24- import { error , success } from "./utils/io/io"
24+ import { error , success , warning } from "./utils/io/io"
2525import { setupVcpkg } from "./vcpkg/vcpkg"
2626import { join } from "path"
2727import { setupVCVarsall } from "./vcvarsall/vcvarsall"
@@ -134,11 +134,7 @@ export async function main(args: string[]): Promise<number> {
134134 installationInfo = await setupFunction ( getVersion ( tool , value ) , join ( setupCppDir , tool ) , arch )
135135 }
136136 // preparing a report string
137- if ( installationInfo !== undefined ) {
138- successMessages . push ( getSuccessMessage ( tool , installationInfo ) )
139- } else {
140- successMessages . push ( `${ tool } was successfully installed` )
141- }
137+ successMessages . push ( getSuccessMessage ( tool , installationInfo ) )
142138 } catch ( e ) {
143139 // push error message to the logger
144140 error ( e as string | Error )
@@ -158,14 +154,20 @@ export async function main(args: string[]): Promise<number> {
158154 case "llvm" :
159155 case "clang" :
160156 case "clang++" : {
161- await setupLLVM ( getVersion ( "llvm" , version ) as string , join ( setupCppDir , "llvm" ) , arch )
157+ const installationInfo = await setupLLVM (
158+ getVersion ( "llvm" , version ) as string ,
159+ join ( setupCppDir , "llvm" ) ,
160+ arch
161+ )
162+ successMessages . push ( getSuccessMessage ( "llvm" , installationInfo ) )
162163 break
163164 }
164165 case "gcc" :
165166 case "mingw" :
166167 case "cygwin" :
167168 case "msys" : {
168- await setupGcc ( getVersion ( "gcc" , version ) as string , join ( setupCppDir , "gcc" ) , arch )
169+ const installationInfo = await setupGcc ( getVersion ( "gcc" , version ) as string , join ( setupCppDir , "gcc" ) , arch )
170+ successMessages . push ( getSuccessMessage ( "gcc" , installationInfo ) )
169171 break
170172 }
171173 case "cl" :
@@ -175,14 +177,20 @@ export async function main(args: string[]): Promise<number> {
175177 case "visualstudio" :
176178 case "visualcpp" :
177179 case "visualc++" : {
178- await setupMSVC ( getVersion ( "msvc" , version ) as string , join ( setupCppDir , "msvc" ) , arch )
180+ const installationInfo = await setupMSVC (
181+ getVersion ( "msvc" , version ) as string ,
182+ join ( setupCppDir , "msvc" ) ,
183+ arch
184+ )
185+ successMessages . push ( getSuccessMessage ( "msvc" , installationInfo ) )
179186 break
180187 }
181188 case "appleclang" :
182189 case "applellvm" : {
183190 core . info ( "Assuming apple-clang is already installed" )
184191 addEnv ( "CC" , "clang" )
185192 addEnv ( "CXX" , "clang++" )
193+ successMessages . push ( getSuccessMessage ( "apple-clang" , undefined ) )
186194 break
187195 }
188196 default : {
@@ -195,6 +203,11 @@ export async function main(args: string[]): Promise<number> {
195203 errorMessages . push ( `Failed to install the ${ maybeCompiler } ` )
196204 }
197205
206+ if ( successMessages . length === 0 && errorMessages . length === 0 ) {
207+ warning ( "setup_cpp was called without any arguments. Nothing to do." )
208+ return 0
209+ }
210+
198211 // report the messages in the end
199212 successMessages . forEach ( ( tool ) => success ( tool ) )
200213 errorMessages . forEach ( ( tool ) => error ( tool ) )
@@ -292,8 +305,11 @@ function maybeGetInput(key: string) {
292305 return undefined // skip installation
293306}
294307
295- function getSuccessMessage ( tool : string , installationInfo : InstallationInfo ) {
308+ function getSuccessMessage ( tool : string , installationInfo : InstallationInfo | undefined | void ) {
296309 let msg = `${ tool } was successfully installed`
310+ if ( installationInfo === undefined ) {
311+ return msg
312+ }
297313 if ( "installDir" in installationInfo ) {
298314 msg += `\nThe installation directory is ${ installationInfo . installDir } `
299315 }
0 commit comments