当前位置:  编程技术>移动开发

用于cocos2d-x引擎(ndk)中为android项目生成编译文件列表

    来源: 互联网  发布时间:2014-10-24

    本文导语:    代码如下:package com.leeass.generate; import java.io.File;import java.io.FileFilter;import java.io.FileNotFoundException; /** * 用于cocos2d-x引擎中android项目编译文件列表生成 * @author leeassamite * */public class GenerateAndroidMakefile { /** 分隔符 */ private stat...

 

代码如下:

package com.leeass.generate;

import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;

/**
 * 用于cocos2d-x引擎中android项目编译文件列表生成
 * @author leeassamite
 *
 */
public class GenerateAndroidMakefile {
 /** 分隔符 */
 private static final String LINE_BREAK = System.getProperty("line.separator", "/n");
 /** classes文件夹 */
 private File classesDir = null;
 /** classes文件夹路径 */
 private String classesPath = "";
 /** classes文件夹相对路径 */
 private String classesRelativePath = "";
 /** 编译文件过滤器 */
 private BuildFileFilter buildFileFilter = null;

 /**
  * 创建GenerateAndroidMakefile
  * @param classesAbsolutePath classes文件夹绝对路径
  * @param classesRelativePath classes文件夹在编译文件中的相对路径
  * @throws Exception
  */
 public GenerateAndroidMakefile(String classesAbsolutePath,String classesRelativePath) throws Exception{
  if(classesRelativePath == null){
   throw new Exception("classes文件夹相对路径错误,不能为NULL!");
  }
  if(classesAbsolutePath == null || "".equals(classesAbsolutePath)){
   throw new Exception("classes文件夹路径输入错误,不能为空!");
  }
  classesDir = new File(classesAbsolutePath);
  if((!classesDir.exists()) || (!classesDir.canRead()) || (!classesDir.isDirectory())){
   throw new FileNotFoundException("classes文件夹不可读:"+classesDir.getAbsolutePath());
  }
  this.classesPath = classesAbsolutePath;
  this.classesPath = classesAbsolutePath.replaceAll("\\", "/");
  this.classesRelativePath = classesRelativePath;
  buildFileFilter = new BuildFileFilter();
 }

 /**
  * 输出编译文件列表
  */
 public void outputBuildFilesList(){
  StringBuilder buildFilesSb = new StringBuilder();
  outputBuildFileList(classesDir,buildFilesSb);
  System.out.println(buildFilesSb.toString());
 }
 private void outputBuildFileList(File buildfile,StringBuilder buildFilesSb){
  if(buildfile.isDirectory()){
   File[] files =buildfile.listFiles(buildFileFilter);
   for (File file : files) {
    outputBuildFileList(file,buildFilesSb);
   }
  }else{
   String buildfileStr = translateBuildFilePath(buildfile.getAbsolutePath()) + " \";
   buildFilesSb.append(buildfileStr).append(LINE_BREAK);
  }
 }
 /**
  * 转换编译文件路径
  * @param filepath
  * @return
  */
 private String translateBuildFilePath(String filepath){
  return filepath.replaceAll("\\", "/").replace(classesPath, classesRelativePath);
 }

 /**
  * @param args
  * @throws FileNotFoundException
  */
 public static void main(String[] args) throws Exception {
  String classesPath = "D:\developer\cocos2d-x-2.1.4\projects\hszg_ol\Classes";
  String relativePath = "                   ../../Classes";
  GenerateAndroidMakefile gam = new GenerateAndroidMakefile(classesPath,relativePath);
  gam.outputBuildFilesList();
 }

 
 /**
  * 编译文件过滤器
  * @author leeass
  *
  */
 class BuildFileFilter implements FileFilter{
  @Override
  public boolean accept(File pathname) {
   String name = pathname.getName().toLowerCase();
   return (!pathname.isHidden()) && (pathname.isDirectory() || name.endsWith(".c") || name.endsWith(".cpp"));
  }
 }

}




    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 用JavaBean或Servlet能生成Excel文件用于网上打印吗,如何解决?
  • JSP生成jpeg图片用于投票
  • C++ Strings(字符串) 成员 Operators:操作符,用于字符串比较和赋值
  • 一个用于番茄工作法的计时器 小番茄
  • C++ Strings(字符串) 成员 Constructors:构造函数,用于字符串初始化
  • 用于文本抽取的模式匹配语言 TXR
  • 什么是Docker?Docker通常用于如下场景
  • 鼠标dragged时,怎么做出虚框效果,用于选中物件?
  • linux bash shell命令:文本搜索工具grep中用于egrep和 grep -E的元字符扩展集
  • 谁能提供一些 Java 平台用于小型网络设备的平台的资料?
  • VisiBroker For C++ 可以用于 EJB 吗?
  • 大家来讨论一下,在linux下除了openGL还有什么可以用于多媒体视频开发的接口库?
  • 请问大家开发linux内核一般是在做/用于什么项目?
  • 请问:syslog能否用于多线程或者多进程的程序中进行写日志啊?
  • Liunx用于服务器方面请教
  • clonezilla能用于磁盘阵列吗?
  • hexdump工具不能用于目录吗?
  • 用于测试的邮件服务器 Mockemail
  • 怎样用JDK写用于ASP的组件?最好有例子或详细资料!
  • 40G硬盘全部用于linux,分区时有什么好的建议?
  • 属性owner不可用于数据库xxx的解决方法
  • 我没用过Java,请问各位大侠Java中除了/*...*/用作注释外,还有什么符号可用于注释符?
  • 哪些开源的ftp客户端可以用于嵌入式系统?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3