MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / configureZLibFilC

Function configureZLibFilC

Tools/SC-build.cpp:347–392  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

345}
346
347static Result configureZLibFilC(const Parameters& parameters, Workspace& workspace)
348{
349 ProcessEnvironment environment;
350 StringSpan sourceDirectory;
351 StringSpan outputDirectory;
352 StringSpan intermediateDirectory;
353 if (not environment.get("SC_ZLIB_FILC_SOURCE_DIR", sourceDirectory) or sourceDirectory.isEmpty())
354 {
355 return Result(true);
356 }
357 SC_TRY_MSG(environment.get("SC_ZLIB_FILC_OUTPUT_DIR", outputDirectory) and not outputDirectory.isEmpty(),
358 "SC_ZLIB_FILC_OUTPUT_DIR is required when SC_ZLIB_FILC_SOURCE_DIR is set");
359 SC_TRY_MSG(environment.get("SC_ZLIB_FILC_INTERMEDIATE_DIR", intermediateDirectory) and
360 not intermediateDirectory.isEmpty(),
361 "SC_ZLIB_FILC_INTERMEDIATE_DIR is required when SC_ZLIB_FILC_SOURCE_DIR is set");
362
363 Project project = {ZLIB_FILC_PROJECT_NAME, TargetType::SharedLibrary};
364 project.setRootDirectory(sourceDirectory);
365 SC_TRY(project.targetName.assign("libz"));
366
367 project.addPresetConfiguration(Configuration::Preset::Debug, parameters);
368 project.addPresetConfiguration(Configuration::Preset::Release, parameters);
369 for (Configuration& configuration : project.configurations)
370 {
371 SC_TRY(configuration.outputPath.assign(outputDirectory));
372 SC_TRY(configuration.intermediatesPath.assign(intermediateDirectory));
373 SC_TRY(configuration.compile.defines.push_back("ZEXPORT=__attribute__((visibility(\"default\")))"));
374 SC_TRY(configuration.compile.defines.push_back("ZEXPORTVA=__attribute__((visibility(\"default\")))"));
375 SC_TRY(configuration.compile.defines.push_back("HAVE_UNISTD_H"));
376 SC_TRY(configuration.compile.defines.push_back("HAVE_HIDDEN"));
377 SC_TRY(configuration.compile.disableWarnings({"implicit-fallthrough"}));
378 configuration.link.enableDeadCodeStripping = false;
379 }
380
381 static constexpr StringView sources[] = {
382 "adler32.c", "compress.c", "crc32.c", "deflate.c", "gzclose.c", "gzlib.c", "gzread.c", "gzwrite.c",
383 "infback.c", "inffast.c", "inflate.c", "inftrees.c", "trees.c", "uncompr.c", "zutil.c",
384 };
385 for (const StringView source : sources)
386 {
387 SC_TRY(project.addFile(source));
388 }
389 SC_TRY(project.addIncludePaths({"."}));
390 SC_TRY(workspace.projects.push_back(move(project)));
391 return Result(true);
392}
393
394Result configureTests(const Parameters& parameters, Workspace& workspace)
395{

Callers 1

configureFunction · 0.85

Calls 6

addFileMethod · 0.80
ResultClass · 0.50
getMethod · 0.45
isEmptyMethod · 0.45
assignMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected