File indexing completed on 2024-04-21 05:38:35
0001 #!/usr/bin/env python 0002 0003 import sys, os 0004 from shutil import copyfile 0005 0006 #-------------------------------------------------- 0007 # Change here: 0008 CLAZY_VERSION = '1.12' 0009 CANDIDATE_SHA1 = 'v1.12' 0010 PACKAGE_DIR = '/d/clazy-msvc-package/' 0011 PACKAGE_DIR_WIN = 'd:\\clazy-msvc-package\\' 0012 #-------------------------------------------------- 0013 0014 CLAZY_REPO_URL = "https://invent.kde.org/sdk/clazy.git" 0015 MSVC_VERSION = os.getenv('MSVC_VERSION', '') 0016 LLVM_INSTALL_DIR = os.getenv('LLVM_INSTALL_DIR', '') 0017 CLAZY_WORK_DIR = 'work' + MSVC_VERSION 0018 CLAZY_ZIP_WITHOUT_EXTENSION = "clazy_v%s-msvc%s" % (CLAZY_VERSION, MSVC_VERSION) 0019 CLAZY_ZIP = CLAZY_ZIP_WITHOUT_EXTENSION + '.zip' 0020 CLAZY_SRC_ZIP = "clazy_v%s-src.zip" % CLAZY_VERSION 0021 0022 0023 def run_command(cmd, abort_on_error = True): 0024 print(cmd) 0025 success = (os.system(cmd) == 0) 0026 if abort_on_error and not success: 0027 sys.exit(1) 0028 0029 return success 0030 0031 def copy(src, dest): 0032 run_command('cp %s %s' % (src, dest)) 0033 0034 def check_env(): 0035 if MSVC_VERSION not in ['2019']: 0036 print("Error: Set MSVC_VERSION to a proper value. Exiting...") 0037 sys.exit(1) 0038 0039 if not LLVM_INSTALL_DIR: 0040 print("Error: Set LLVM_INSTALL_DIR to a proper value. Exiting...") 0041 sys.exit(1) 0042 0043 run_command('rm -rf ' + PACKAGE_DIR) 0044 0045 def clone_clazy(sha1, work_dir): 0046 if os.path.exists(work_dir): 0047 run_command("rm -rf " + work_dir) 0048 run_command("git clone %s %s" % (CLAZY_REPO_URL, work_dir)) 0049 run_command("git checkout " + sha1) 0050 0051 def build_clazy(): 0052 cmd = 'cmake -DCMAKE_INSTALL_PREFIX=%s -DCMAKE_BUILD_TYPE=Release -DCLANG_LIBRARY_IMPORT=%s\lib\clang.lib -G "Ninja" .' % (LLVM_INSTALL_DIR, LLVM_INSTALL_DIR) 0053 run_command(cmd) 0054 run_command('cmake --build .') 0055 run_command('cmake --build . --target install') 0056 0057 def copy_files(work_dir): 0058 0059 if not os.path.exists(PACKAGE_DIR_WIN): 0060 os.mkdir(PACKAGE_DIR_WIN) 0061 0062 os.mkdir(PACKAGE_DIR_WIN + 'clazy') 0063 os.mkdir(PACKAGE_DIR_WIN + 'clazy/share') 0064 os.mkdir(PACKAGE_DIR_WIN + 'clazy/bin') 0065 os.mkdir(PACKAGE_DIR_WIN + 'clazy/bin/clang') 0066 0067 copy("../windows-package/clazy-cl.bat", PACKAGE_DIR + 'clazy/bin') 0068 copy("../windows-package/clazy.bat", PACKAGE_DIR + 'clazy/bin') 0069 copy("../windows-package/LICENSE-CLAZY.txt", PACKAGE_DIR + 'clazy') 0070 copy("../windows-package/LICENSE-LLVM.TXT", PACKAGE_DIR + 'clazy') 0071 copy("../windows-package/README.txt", PACKAGE_DIR + 'clazy') 0072 copy("../README.md", PACKAGE_DIR + 'clazy/README-CLAZY.md') 0073 copy(LLVM_INSTALL_DIR + '/bin/clang.exe', PACKAGE_DIR + 'clazy/bin/clang/') 0074 copy(LLVM_INSTALL_DIR + '/bin/clang-apply-replacements.exe', PACKAGE_DIR + 'clazy/bin/clang/') 0075 copy(LLVM_INSTALL_DIR + '/bin/clang.exe', PACKAGE_DIR + 'clazy/bin/clang/clang-cl.exe') 0076 copy(LLVM_INSTALL_DIR + '/bin/ClazyPlugin.dll', PACKAGE_DIR + 'clazy/bin/clang/') 0077 copy(LLVM_INSTALL_DIR + '/bin/clazy-standalone.exe', PACKAGE_DIR + 'clazy/bin/clang/') 0078 0079 run_command("cp -r %s/lib/clang/ %s" % (LLVM_INSTALL_DIR, PACKAGE_DIR + 'clazy/bin/lib/')) 0080 run_command("cp -r %s/share/doc/ %s" % (LLVM_INSTALL_DIR, PACKAGE_DIR + 'clazy/share/')) 0081 run_command('unix2dos %s' % PACKAGE_DIR + 'clazy/bin/clazy-cl.bat') 0082 run_command('unix2dos %s' % PACKAGE_DIR + 'clazy/bin/clazy.bat') 0083 0084 def zip_package(): 0085 os.chdir(PACKAGE_DIR_WIN) 0086 run_command('zip -r %s clazy/' % (CLAZY_ZIP)) 0087 run_command('rm -rf clazy') 0088 0089 run_command('wget --no-check-certificate https://github.com/KDE/clazy/archive/%s.zip -O %s' % (CANDIDATE_SHA1, CLAZY_SRC_ZIP)) 0090 run_command('sha1sum %s > sums.txt' % CLAZY_ZIP) 0091 run_command('sha256sum %s >> sums.txt' % CLAZY_ZIP) 0092 run_command('sha1sum %s >> sums.txt' % CLAZY_SRC_ZIP) 0093 run_command('sha256sum %s >> sums.txt' % CLAZY_SRC_ZIP) 0094 0095 run_command("unzip %s -d %s" % (CLAZY_ZIP, CLAZY_ZIP_WITHOUT_EXTENSION)) 0096 print("Don't forget to delete %s after testing" % CLAZY_ZIP_WITHOUT_EXTENSION) 0097 os.chdir('..') 0098 0099 check_env() 0100 clone_clazy(CANDIDATE_SHA1, CLAZY_WORK_DIR) 0101 os.chdir(CLAZY_WORK_DIR) 0102 build_clazy() 0103 copy_files(CLAZY_WORK_DIR) 0104 zip_package()