com.badlogic.gdx.jnigen.BuildConfig Maven / Gradle / Ivy
/*******************************************************************************
* Copyright 2011 See AUTHORS file.
*
* 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.
******************************************************************************/
package com.badlogic.gdx.jnigen;
/** Specifies the global properties of a native build.
*
* The shared library name will be used to generate the shared libraries. The build directory is used to store the object files
* during compilation for each {@link BuildTarget}. It is relative to the jni directory which houses the C/C++ source code. The
* libs directory is the final output directory where the natives jar and arm shared libraries will be written to.
*
* Used with {@link AntScriptGenerator} to generate the build scripts for build targets.
* @author mzechner */
public class BuildConfig {
/** the name of the shared library, without prefix or suffix, e.g. 'gdx', 'bullet' **/
public final String sharedLibName;
/** the directory to put the object files in **/
public final FileDescriptor buildDir;
/** the directory to put the shared libraries and natives jar file in **/
public final FileDescriptor libsDir;
/** the directory containing the native code **/
public final FileDescriptor jniDir;
/** additional shared library files to be packed into the natives jar, relative to the jni dir **/
public String[] sharedLibs;
/** Creates a new BuildConfig. The build directory, the libs directory and the jni directory are assumed to be "target", "libs"
* and "jni". All paths are relative to the application's working directory.
* @param sharedLibName the shared library name, without prefix or suffix, e.g. 'gdx', 'bullet' */
public BuildConfig (String sharedLibName) {
this.sharedLibName = sharedLibName;
this.buildDir = new FileDescriptor("target");
this.libsDir = new FileDescriptor("libs");
this.jniDir = new FileDescriptor("jni");
}
/** Creates a new BuildConfig. All paths are relative to the application's working directory.
* @param sharedLibName the shared library name, without prefix or suffix, e.g. 'gdx', 'bullet'
* @param temporaryDir
* @param libsDir
* @param jniDir */
public BuildConfig (String sharedLibName, String temporaryDir, String libsDir, String jniDir) {
this.sharedLibName = sharedLibName;
this.buildDir = new FileDescriptor(temporaryDir);
this.libsDir = new FileDescriptor(libsDir);
this.jniDir = new FileDescriptor(jniDir);
}
}