14427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley/* 24427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * Copyright (C) 2015, The Android Open Source Project 34427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * 44427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * Licensed under the Apache License, Version 2.0 (the "License"); 54427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * you may not use this file except in compliance with the License. 64427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * You may obtain a copy of the License at 74427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * 84427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * http://www.apache.org/licenses/LICENSE-2.0 94427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * 104427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * Unless required by applicable law or agreed to in writing, software 114427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * distributed under the License is distributed on an "AS IS" BASIS, 124427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * See the License for the specific language governing permissions and 144427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley * limitations under the License. 154427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley */ 164427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley 174427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley#include <iostream> 184427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley#include <memory> 194427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley 2089e3586afa180230fa999d4287df90df9d066cefChristopher Wiley#include "aidl.h" 214a2884b0e9414ed9dfee4e141e8bd462c07b442bChristopher Wiley#include "io_delegate.h" 22b8b59f6b19e791b6e3f381726d84baadeac4f5ceChristopher Wiley#include "logging.h" 2389e3586afa180230fa999d4287df90df9d066cefChristopher Wiley#include "options.h" 2489e3586afa180230fa999d4287df90df9d066cefChristopher Wiley 2589eaab56f3ff913c247397b858fac3c8d3d4a206Christopher Wileyusing android::aidl::JavaOptions; 2689e3586afa180230fa999d4287df90df9d066cefChristopher Wiley 27b8b59f6b19e791b6e3f381726d84baadeac4f5ceChristopher Wileyint main(int argc, char** argv) { 28b8b59f6b19e791b6e3f381726d84baadeac4f5ceChristopher Wiley android::base::InitLogging(argv); 29b8b59f6b19e791b6e3f381726d84baadeac4f5ceChristopher Wiley LOG(DEBUG) << "aidl starting"; 3089eaab56f3ff913c247397b858fac3c8d3d4a206Christopher Wiley std::unique_ptr<JavaOptions> options = JavaOptions::Parse(argc, argv); 314427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley if (!options) { 3289e3586afa180230fa999d4287df90df9d066cefChristopher Wiley return 1; 334427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley } 344427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley 354a2884b0e9414ed9dfee4e141e8bd462c07b442bChristopher Wiley android::aidl::IoDelegate io_delegate; 364427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley switch (options->task) { 3789eaab56f3ff913c247397b858fac3c8d3d4a206Christopher Wiley case JavaOptions::COMPILE_AIDL_TO_JAVA: 384a2884b0e9414ed9dfee4e141e8bd462c07b442bChristopher Wiley return android::aidl::compile_aidl_to_java(*options, io_delegate); 3989eaab56f3ff913c247397b858fac3c8d3d4a206Christopher Wiley case JavaOptions::PREPROCESS_AIDL: 40c1f39b4ea30e7313eeb7f3d3fd5ec66ba00f2bb5Casey Dahlin if (android::aidl::preprocess_aidl(*options, io_delegate)) 41c1f39b4ea30e7313eeb7f3d3fd5ec66ba00f2bb5Casey Dahlin return 0; 42c1f39b4ea30e7313eeb7f3d3fd5ec66ba00f2bb5Casey Dahlin return 1; 434427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley } 444427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley std::cerr << "aidl: internal error" << std::endl; 454427d8654985209c1ebf2fb4705bb3e1a4262be2Christopher Wiley return 1; 4689e3586afa180230fa999d4287df90df9d066cefChristopher Wiley} 47