blob: 9e11103edcf3c7602d1ee13dec9cbff5c1098fba [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)
Andreas Gampe097f34c2017-08-23 08:57:51 -070048DEX2OAT_OPTIONS_KEY (std::vector<std::string>, OatFiles)
49DEX2OAT_OPTIONS_KEY (std::vector<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)
56DEX2OAT_OPTIONS_KEY (std::vector<std::string>, ImageFilenames)
Andreas Gampe097f34c2017-08-23 08:57:51 -070057DEX2OAT_OPTIONS_KEY (ImageHeader::StorageMode, ImageFormat)
Andreas Gampe097f34c2017-08-23 08:57:51 -070058DEX2OAT_OPTIONS_KEY (std::string, Passes)
59DEX2OAT_OPTIONS_KEY (std::string, Base) // TODO: Hex string parsing.
60DEX2OAT_OPTIONS_KEY (std::string, BootImage)
61DEX2OAT_OPTIONS_KEY (std::string, AndroidRoot)
62DEX2OAT_OPTIONS_KEY (InstructionSet, TargetInstructionSet)
63DEX2OAT_OPTIONS_KEY (std::string, TargetInstructionSetVariant)
64DEX2OAT_OPTIONS_KEY (std::string, TargetInstructionSetFeatures)
65DEX2OAT_OPTIONS_KEY (Compiler::Kind, Backend)
66DEX2OAT_OPTIONS_KEY (std::string, Profile)
67DEX2OAT_OPTIONS_KEY (int, ProfileFd)
68DEX2OAT_OPTIONS_KEY (Unit, Host)
69DEX2OAT_OPTIONS_KEY (Unit, DumpTiming)
70DEX2OAT_OPTIONS_KEY (Unit, DumpPasses)
71DEX2OAT_OPTIONS_KEY (Unit, DumpStats)
Andreas Gampe15544172018-06-25 15:09:06 -070072DEX2OAT_OPTIONS_KEY (linker::CopyOption, CopyDexFiles)
Andreas Gampe097f34c2017-08-23 08:57:51 -070073DEX2OAT_OPTIONS_KEY (Unit, AvoidStoringInvocation)
74DEX2OAT_OPTIONS_KEY (std::string, SwapFile)
75DEX2OAT_OPTIONS_KEY (int, SwapFileFd)
76DEX2OAT_OPTIONS_KEY (unsigned int, SwapDexSizeThreshold)
77DEX2OAT_OPTIONS_KEY (unsigned int, SwapDexCountThreshold)
78DEX2OAT_OPTIONS_KEY (unsigned int, VeryLargeAppThreshold)
79DEX2OAT_OPTIONS_KEY (std::string, AppImageFile)
80DEX2OAT_OPTIONS_KEY (int, AppImageFileFd)
81DEX2OAT_OPTIONS_KEY (Unit, MultiImage)
82DEX2OAT_OPTIONS_KEY (std::string, NoInlineFrom)
83DEX2OAT_OPTIONS_KEY (Unit, ForceDeterminism)
84DEX2OAT_OPTIONS_KEY (std::string, ClasspathDir)
Alex Light62afcf52018-12-18 14:19:25 -080085DEX2OAT_OPTIONS_KEY (std::string, InvocationFile)
Andreas Gampe097f34c2017-08-23 08:57:51 -070086DEX2OAT_OPTIONS_KEY (std::string, ClassLoaderContext)
David Brazdil89821862019-03-19 13:57:43 +000087DEX2OAT_OPTIONS_KEY (std::string, ClassLoaderContextFds)
Mathieu Chartierf5abfc42018-03-23 21:51:54 -070088DEX2OAT_OPTIONS_KEY (std::string, StoredClassLoaderContext)
Andreas Gampe097f34c2017-08-23 08:57:51 -070089DEX2OAT_OPTIONS_KEY (std::string, DirtyImageObjects)
90DEX2OAT_OPTIONS_KEY (std::vector<std::string>, RuntimeOptions)
Calin Juravle0e09dfc2018-02-12 19:01:09 -080091DEX2OAT_OPTIONS_KEY (std::string, CompilationReason)
Andreas Gampe097f34c2017-08-23 08:57:51 -070092
93#undef DEX2OAT_OPTIONS_KEY