You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.7 KiB
49 lines
1.7 KiB
4 months ago
|
/*
|
||
|
* Copyright (C) 2017 The Android Open Source Project
|
||
|
*
|
||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
* you may not use this file except in compliance with the License.
|
||
|
* You may obtain a copy of the License at
|
||
|
*
|
||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||
|
*
|
||
|
* Unless required by applicable law or agreed to in writing, software
|
||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
* See the License for the specific language governing permissions and
|
||
|
* limitations under the License.
|
||
|
*/
|
||
|
|
||
|
#ifndef ART_COMPILER_DRIVER_COMPILER_OPTIONS_MAP_STORAGE_H_
|
||
|
#define ART_COMPILER_DRIVER_COMPILER_OPTIONS_MAP_STORAGE_H_
|
||
|
|
||
|
// Assumes:
|
||
|
// * #include "compiler_options_map.h"
|
||
|
// * namespace art
|
||
|
//
|
||
|
// Usage:
|
||
|
// #define COMPILER_OPTIONS_MAP_TYPE TheTypeOfTheMap
|
||
|
// #define COMPILER_OPTIONS_MAP_KEY_TYPE TheTypeOfTheMapsKey
|
||
|
// #include "driver/compiler_options_map-storage.h
|
||
|
|
||
|
#ifndef COMPILER_OPTIONS_MAP_TYPE
|
||
|
#error "Expected COMPILER_OPTIONS_MAP_TYPE"
|
||
|
#endif
|
||
|
|
||
|
#ifndef COMPILER_OPTIONS_MAP_KEY_TYPE
|
||
|
#error "Expected COMPILER_OPTIONS_MAP_KEY_TYPE"
|
||
|
#endif
|
||
|
|
||
|
#define COMPILER_OPTIONS_KEY(Type, Name, ...) \
|
||
|
template <typename Base, template <typename TV> class KeyType> \
|
||
|
const KeyType<Type> CompilerOptionsMap<Base, KeyType>::Name {__VA_ARGS__};
|
||
|
#include <driver/compiler_options_map.def>
|
||
|
|
||
|
template struct CompilerOptionsMap<COMPILER_OPTIONS_MAP_TYPE, COMPILER_OPTIONS_MAP_KEY_TYPE>;
|
||
|
|
||
|
#undef COMPILER_OPTIONS_MAP_TYPE
|
||
|
#undef COMPILER_OPTIONS_MAP_KEY_TYPE
|
||
|
|
||
|
#endif // ART_COMPILER_DRIVER_COMPILER_OPTIONS_MAP_STORAGE_H_
|
||
|
#undef ART_COMPILER_DRIVER_COMPILER_OPTIONS_MAP_STORAGE_H_ // Guard is only for cpplint
|