<COCOS2D-X>
4. 심볼릭링크 자동 지정
CodeGrimie
2021. 2. 7. 12:22
일전에 심볼릭 링크를 사용해서 Cocos2D-X 프로젝트의 용량을 줄이는 방법에 대해서 정리한 적 있다.
제대로 작동하지만 프로젝트를 만들 때마다 해당 명령어를 입력하는 것이 매우 귀찮다.
(프로그래머가 되어가면서 이런 것들이 점점 귀찮아진다.)
그래서 애초에 Cocos2D-x 프로젝트를 만들 때 심볼릭 링크로 만들도록 Python 파일을 수정했다.
▼ Python 파일의 위치는 아래와 같다.
cocos2d-x-4.0\tools\cocos2d-console\plugins\plugin_new\project_new.py |
▼ project_new.py 에서 아래의 코드로 수정한다.
def append_x_engine(self, v):
# FIXME this is a hack, but in order to fix it correctly the cocos-project-template.json
# file probably will need to be re-designed.
# As a quick (horrible) fix, we check if we are in distro mode.
# If so, we don't do the "append_x_engine" step
if cocos.CCPlugin.get_cocos2d_mode() == 'distro':
return
# src = os.path.join(self.cocos_root, v['from'])
# dst = os.path.join(self.project_dir, v['to'])
# # check cocos engine exist
# cocosx_files_json = os.path.join(
# src, 'templates', 'cocos2dx_files.json')
# if not os.path.exists(cocosx_files_json):
# message = MultiLanguage.get_string('NEW_WARNING_FILE_NOT_FOUND_FMT', cocosx_files_json)
# raise cocos.CCPluginError(message, cocos.CCPluginError.ERROR_PATH_NOT_FOUND)
# f = open(cocosx_files_json)
# data = json.load(f)
# f.close()
# fileList = data['common']
# if self.lang == 'lua':
# fileList = fileList + data['lua']
# if self.lang == 'js' and 'js' in data.keys():
# fileList = fileList + data['js']
# # begin copy engine
# cocos.Logging.info(MultiLanguage.get_string('NEW_INFO_STEP_COPY_X'))
# for index in range(len(fileList)):
# srcfile = os.path.join(src, fileList[index])
# dstfile = os.path.join(dst, fileList[index])
# srcfile = cocos.add_path_prefix(srcfile)
# dstfile = cocos.add_path_prefix(dstfile)
# if not os.path.exists(os.path.dirname(dstfile)):
# os.makedirs(cocos.add_path_prefix(os.path.dirname(dstfile)))
# # copy file or folder
# if os.path.exists(srcfile):
# if os.path.isdir(srcfile):
# if os.path.exists(dstfile):
# shutil.rmtree(dstfile)
# shutil.copytree(srcfile, dstfile)
# else:
# if os.path.exists(dstfile):
# os.remove(dstfile)
# shutil.copy2(srcfile, dstfile)
# Add Symbolic Links
cocos.Logging.info("Now Create Cocos2d-x Engine symbolic links...")
if cocos.os_is_win32():
os.system('mklink /J "{0}"\cocos2d "{1}"'.format(self.project_dir, self.cocos_root))
elif cocos.os_is_mac():
os.system('ln -s "{0}" "{1}"\cocos2d'.format(self.cocos_root, self.project_dir))
이렇게 하면 cocos 명령어로 새 프로젝트를 만들 때 심볼릭링크로 cocos2d 엔진 파일을 가져온다.
코드를 빌드하고 나면 용량이 다시 400MB까지 올라가는데 이건 비주얼스튜디오가 생성하는 파일 크기이므로 마땅히 줄일 방법이 별로 없어보인다..