#
# Copyright (C) 2012 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.
#

#
# These are the files that comprise the MacOS X tools component of the SDK.
#

##############################################################################
# Tools Component
##############################################################################

# RCP Monitor.
bin/monitor                                 tools/monitor
eclipse/monitor-macosx.cocoa.x86_64/monitor tools/lib/monitor-x86_64

# swt
prebuilts/tools/darwin-x86/swt/swt.jar tools/lib/x86/swt.jar
prebuilts/tools/darwin-x86_64/swt/swt.jar tools/lib/x86_64/swt.jar


# JetCreator (only available on mac/windows)
external/sonivox/jet_tools/JetCreator                     tools/Jet/JetCreator
prebuilts/tools/darwin-x86/jetcreator/libEASLIb.dylib     tools/Jet/JetCreator/libEASLIb.dylib
external/sonivox/jet_tools/JetCreator_content             tools/Jet/demo_content
external/sonivox/jet_tools/logic_templates                tools/Jet/logic_templates

