<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you 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.

-->
<project xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.apisupport.project</type>
    <configuration>
        <data xmlns="http://www.netbeans.org/ns/nb-module-project/3">
            <code-name-base>org.netbeans.libs.truffleapi</code-name-base>
            <module-dependencies>
                <dependency>
                    <code-name-base>org.netbeans.libs.graalsdk</code-name-base>
                    <build-prerequisite/>
                    <compile-dependency/>
                    <run-dependency>
                        <specification-version>1.11</specification-version>
                    </run-dependency>
                </dependency>
            </module-dependencies>
            <public-packages>
                <package>com.oracle.truffle.api</package>
                <package>com.oracle.truffle.api.debug</package>
                <package>com.oracle.truffle.api.dsl</package>
                <package>com.oracle.truffle.api.exception</package>
                <package>com.oracle.truffle.api.frame</package>
                <package>com.oracle.truffle.api.instrumentation</package>
                <package>com.oracle.truffle.api.interop</package>
                <package>com.oracle.truffle.api.library</package>
                <package>com.oracle.truffle.api.nodes</package>
                <package>com.oracle.truffle.api.object</package>
                <package>com.oracle.truffle.api.object.dsl</package>
                <package>com.oracle.truffle.api.profiles</package>
                <package>com.oracle.truffle.api.source</package>
                <package>com.oracle.truffle.api.utilities</package>
            </public-packages>
            <class-path-extension>
                <runtime-relative-path>ext/truffle-api-20.3.0.jar</runtime-relative-path>
                <binary-origin>external/truffle-api-20.3.0.jar</binary-origin>
            </class-path-extension>
        </data>
    </configuration>
</project>
