blob: db9da9f11fd827d30fa454123be7f19aab33e5bf [file] [log] [blame]
Andreas Gampe097f34c2017-08-23 08:57:51 -07001/*
2 * Copyright (C) 2017 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License")
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef DEX2OAT_OPTIONS_KEY
18#error "Please #define DEX2OAT_OPTIONS_KEY before #including this file"
19#define DEX2OAT_OPTIONS_KEY(...) // Don't display errors in this file in IDEs.
20#endif
21
22// This file defines the list of keys for Dex2oatOptions.
23// These can be used with Dex2oatOptions.Get/Set/etc, for example:
24// Dex2oatOptions opt; bool* dex2oat_enabled = opt.Get(Dex2oatOptions::Dex2Oat);
25//
26// Column Descriptions:
27// <<Type>> <<Key Name>> <<Default Value>>
28//
29// Default values are only used by Map::GetOrDefault(K<T>).
30// If a default value is omitted here, T{} is used as the default value, which is
31// almost-always the value of the type as if it was memset to all 0.
32//
33// Please keep the columns aligned if possible when adding new rows.
34//
35
36// Parse-able keys from the command line.
Mathieu Chartiereafe2a52017-10-19 15:29:42 -070037DEX2OAT_OPTIONS_KEY (CompactDexLevel, CompactDexLevel)
Andreas Gampe097f34c2017-08-23 08:57:51 -070038DEX2OAT_OPTIONS_KEY (std::vector<std::string>, DexFiles)
39DEX2OAT_OPTIONS_KEY (std::vector<std::string>, DexLocations)
40DEX2OAT_OPTIONS_KEY (int, ZipFd)
41DEX2OAT_OPTIONS_KEY (std::string, ZipLocation)
42DEX2OAT_OPTIONS_KEY (int, InputVdexFd)
43DEX2OAT_OPTIONS_KEY (std::string, InputVdex)
44DEX2OAT_OPTIONS_KEY (int, OutputVdexFd)
45DEX2OAT_OPTIONS_KEY (std::string, OutputVdex)
Nicolas Geoffraybaeaa9b2018-01-26 14:31:17 +000046DEX2OAT_OPTIONS_KEY (int, DmFd)
47DEX2OAT_OPTIONS_KEY (std::string, DmFile)
Vladimir Markod0036ac2019-11-21 11:47:12 +000048DEX2OAT_OPTIONS_KEY (std::string, OatFile)
49DEX2OAT_OPTIONS_KEY (std::string, OatSymbols)
David Srbeckyde91fd42018-07-05 22:27:08 +010050DEX2OAT_OPTIONS_KEY (Unit, Strip)
Andreas Gampe097f34c2017-08-23 08:57:51 -070051DEX2OAT_OPTIONS_KEY (int, OatFd)
52DEX2OAT_OPTIONS_KEY (std::string, OatLocation)
53DEX2OAT_OPTIONS_KEY (bool, Watchdog)
54DEX2OAT_OPTIONS_KEY (int, WatchdogTimeout)
55DEX2OAT_OPTIONS_KEY (unsigned int, Threads)
Orion Hodsonffc791c2019-11-14 19:19:28 +000056DEX2OAT_OPTIONS_KEY (std::vector<std::int32_t>, CpuSet)
Vladimir Markod0036ac2019-11-21 11:47:12 +000057DEX2OAT_OPTIONS_KEY (std::string, ImageFilename)
58DEX2OAT_OPTIONS_KEY (int, ImageFd)
Andreas Gampe097f34c2017-08-23 08:57:51 -070059DEX2OAT_OPTIONS_KEY (ImageHeader::StorageMode, ImageFormat)
Andreas Gampe097f34c2017-08-23 08:57:51 -070060DEX2OAT_OPTIONS_KEY (std::string, Passes)
61DEX2OAT_OPTIONS_KEY (std::string, Base) // TODO: Hex string parsing.
62DEX2OAT_OPTIONS_KEY (std::string, BootImage)
63DEX2OAT_OPTIONS_KEY (std::string, AndroidRoot)
64DEX2OAT_OPTIONS_KEY (InstructionSet, TargetInstructionSet)
65DEX2OAT_OPTIONS_KEY (std::string, TargetInstructionSetVariant)
66DEX2OAT_OPTIONS_KEY (std::string, TargetInstructionSetFeatures)
67DEX2OAT_OPTIONS_KEY (Compiler::Kind, Backend)
68DEX2OAT_OPTIONS_KEY (std::string, Profile)
69DEX2OAT_OPTIONS_KEY (int, ProfileFd)
70DEX2OAT_OPTIONS_KEY (Unit, Host)
71DEX2OAT_OPTIONS_KEY (Unit, DumpTiming)
72DEX2OAT_OPTIONS_KEY (Unit, DumpPasses)
73DEX2OAT_OPTIONS_KEY (Unit, DumpStats)
Andreas Gampe15544172018-06-25 15:09:06 -070074DEX2OAT_OPTIONS_KEY (linker::CopyOption, CopyDexFiles)
Andreas Gampe097f34c2017-08-23 08:57:51 -070075DEX2OAT_OPTIONS_KEY (Unit, AvoidStoringInvocation)
76DEX2OAT_OPTIONS_KEY (std::string, SwapFile)
77DEX2OAT_OPTIONS_KEY (int, SwapFileFd)
78DEX2OAT_OPTIONS_KEY (unsigned int, SwapDexSizeThreshold)
79DEX2OAT_OPTIONS_KEY (unsigned int, SwapDexCountThreshold)
80DEX2OAT_OPTIONS_KEY (unsigned int, VeryLargeAppThreshold)
81DEX2OAT_OPTIONS_KEY (std::string, AppImageFile)
82DEX2OAT_OPTIONS_KEY (int, AppImageFileFd)
Vladimir Markod0036ac2019-11-21 11:47:12 +000083DEX2OAT_OPTIONS_KEY (bool, MultiImage)
Andreas Gampe097f34c2017-08-23 08:57:51 -070084DEX2OAT_OPTIONS_KEY (std::string, NoInlineFrom)
85DEX2OAT_OPTIONS_KEY (Unit, ForceDeterminism)
86DEX2OAT_OPTIONS_KEY (std::string, ClasspathDir)
Alex Light62afcf52018-12-18 14:19:25 -080087DEX2OAT_OPTIONS_KEY (std::string, InvocationFile)
Andreas Gampe097f34c2017-08-23 08:57:51 -070088DEX2OAT_OPTIONS_KEY (std::string, ClassLoaderContext)
David Brazdil89821862019-03-19 13:57:43 +000089DEX2OAT_OPTIONS_KEY (std::string, ClassLoaderContextFds)
Mathieu Chartierf5abfc42018-03-23 21:51:54 -070090DEX2OAT_OPTIONS_KEY (std::string, StoredClassLoaderContext)
Andreas Gampe097f34c2017-08-23 08:57:51 -070091DEX2OAT_OPTIONS_KEY (std::string, DirtyImageObjects)
Vladimir Markod1f73512020-04-02 10:50:35 +010092DEX2OAT_OPTIONS_KEY (std::string, UpdatableBcpPackagesFile)
Andreas Gampe097f34c2017-08-23 08:57:51 -070093DEX2OAT_OPTIONS_KEY (std::vector<std::string>, RuntimeOptions)
Calin Juravle0e09dfc2018-02-12 19:01:09 -080094DEX2OAT_OPTIONS_KEY (std::string, CompilationReason)
David Sehrfe57c2b2020-03-27 14:58:54 +000095DEX2OAT_OPTIONS_KEY (Unit, CheckLinkageConditions)
96DEX2OAT_OPTIONS_KEY (Unit, CrashOnLinkageViolation)
Eric Holkbc89ed42020-04-29 19:59:24 +000097DEX2OAT_OPTIONS_KEY (Unit, CompileIndividually)
Calin Juravle33787682019-07-26 14:27:18 -070098DEX2OAT_OPTIONS_KEY (std::string, PublicSdk)
Andreas Gampe097f34c2017-08-23 08:57:51 -070099
100#undef DEX2OAT_OPTIONS_KEY