if config.get('optimize', False): cmake_parameters.append("-DOPTIMIZE_LINK_FLAGS=\"/LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF\"") usvfs = Project("usvfs") usvfs.depend(cmake.CMake().arguments(cmake_parameters + ["-DPROJ_ARCH={}".format("x86" if config['architecture'] == 'x86' else "x64")]) .install() # TODO Not sure why this is required, will look into it at a later stage once we get the rest to build # .depend(patch.CreateFile("CMakeLists.txt.user", partial(gen_userfile_content, usvfs)) .depend(cmake.CMakeEdit(cmake.CMakeEdit.Type.CodeBlocks).arguments(cmake_parameters) .depend(github.Source(config['Main_Author'], "usvfs", "master") .set_destination("usvfs")) .depend("AsmJit") .depend("Udis86") .depend("GTest") .depend("fmtlib") .depend("spdlog") .depend("boost") # )_ ) ) for author,git_path, path, branch, dependencies in [ (config['Main_Author'], "modorganizer-archive", "archive", "master", ["7zip", "Qt5"]), (config['Main_Author'], "modorganizer-uibase", "uibase", "new_vfs_library", ["Qt5", "boost"]), (config['Main_Author'], "modorganizer-lootcli", "lootcli", "master", ["LootApi", "boost"]), (config['Main_Author'], "modorganizer-esptk", "esptk", "master", ["boost"]),
Project(project32 + "_32").depend(unimake32) else: Project(project32 + "_32").dummy().depend(project32) # usvfs build: vs_target = "Clean;Build" if config['rebuild'] else "Build" usvfs_build = \ msbuild.MSBuild("usvfs.sln", vs_target, os.path.join(config["paths"]["build"], "usvfs", "vsbuild"), "x64" if config['architecture'] == 'x86_64' else "x86") usvfs_build.depend( github.Source(config['Main_Author'], "usvfs", "0.3.1.0-Beta").set_destination("usvfs")) usvfs_build.depend("boost" + suffix_32) usvfs_build.depend("GTest" + suffix_32) usvfs.depend(usvfs_build) for author, git_path, path, branch, dependencies, Build in [ (config['Main_Author'], "modorganizer-game_features", "game_features", "master", [], False), (config['Main_Author'], "modorganizer-archive", "archive", "API_9.20", ["7zip", "Qt5", "boost"], True), (config['Main_Author'], "modorganizer-uibase", "uibase", "QT5.7", ["Qt5", "boost"], True), (config['Main_Author'], "modorganizer-lootcli", "lootcli", "master", ["LootApi", "boost"], True), (config['Main_Author'], "modorganizer-esptk", "esptk", "master", ["boost"], True), (config['Main_Author'], "modorganizer-bsatk", "bsatk", "master", ["zlib", "boost"], True), (config['Main_Author'], "modorganizer-nxmhandler", "nxmhandler", "master",
for dep in dependencies: appveyor_cmake_step.depend(dep) if os.getenv("APPVEYOR_PROJECT_NAME","") == git_path: source_retrieval_step = appveyor.SetProjectFolder(os.getenv("APPVEYOR_BUILD_FOLDER", "")) else: source_retrieval_step = github.Source(author, git_path, branch, feature_branch=config['Feature_Branch'], super_repository=tl_repo).set_destination(path) if git_path == "modorganizer" and config['override_build_version']: #add patching step that depends on source retrieval patch_version_step.depend(source_retrieval_step) appveyor_cmake_step.depend(patch_version_step) else: appveyor_cmake_step.depend(source_retrieval_step) project.depend(appveyor_cmake_step) else: vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install() if git_path != "cmake_common": vs_cmake_step.depend("cmake_common") for dep in dependencies: vs_cmake_step.depend(dep) #vs_target = "Clean;Build" if config['rebuild'] else "Build" vs_msbuild_step = msbuild.MSBuild(os.path.join("vsbuild", "INSTALL.vcxproj"), None, None, "{}".format("x64" if config['architecture'] == 'x86_64' else "x86"), config['build_type']) source_retrieval_step = github.Source(author, git_path, branch, feature_branch=config['Feature_Branch'], super_repository=tl_repo).set_destination(path)
] # build_step = cmake.CMake().arguments(cmake_param).install() # for dep in dependencies: # build_step.depend(dep) project = Project(git_path) if Build: vs_step = cmake.CMakeVS().arguments(cmake_param).install() for dep in dependencies: vs_step.depend(dep) project.depend( vs_step.depend( github.Source(author, git_path, branch, super_repository=tl_repo).set_destination(path))) else: project.depend( github.Source(author, git_path, branch, super_repository=tl_repo).set_destination(path)) def python_zip_collect(context): import libpatterns import glob from zipfile import ZipFile ip = os.path.join(config["paths"]["install"], "bin") bp = python.python['build_path']
urldownload.URLDownload( "https://github.com/ModOrganizer2/modorganizer-umbrella/releases/download/1.1/boost_prebuilt_{}.7z" .format(boost_tag_version.replace(".", "_"))).set_destination( "boost_{}".format(boost_tag_version.replace(".", "_")))) if config['architecture'] == 'x86_64': boost_stage = Patch.Copy( os.path.join( "{}/lib{}-msvc-{}/lib/boost_python{}-vc{}-mt-{}-{}.dll".format( boost_path, "64" if config['architecture'] == 'x86_64' else "32", vc_version, config["python_version"].replace(".", ""), vc_version.replace(".", ""), "x64" if config['architecture'] == "x86_64" else "x86", "_".join(boost_version.split(".")[:-1]))), os.path.join(config["paths"]["install"], "bin")) boost.depend(boost_stage) else: boost_prepare = Project("boost_prepare") \ .depend(b2.Bootstrap() .depend(Patch.CreateFile(user_config_jam, lambda: config_template.format( python_version, os.path.join( python.python['build_path'], "PCBuild", "{}".format("" if config['architecture'] == 'x86' else "amd64")) .replace("\\", '/'), os.path.join(python.python['build_path']).replace("\\", '/'), "64" if config['architecture'] == "x86_64" else "32")) .depend(urldownload.URLDownload("https://dl.bintray.com/boostorg/release/{}/source/boost_{}.7z" .format(boost_version,boost_tag_version.replace(".", "_"))
"-DCMAKE_INSTALL_PREFIX:PATH={}/install".format(config["__build_base_path"]) ] if config.get('optimize', False): cmake_parameters.append("-DOPTIMIZE_LINK_FLAGS=\"/LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF\"") usvfs = Project("usvfs") usvfs.depend(cmake.CMake().arguments(cmake_parameters + ["-DPROJ_ARCH={}".format("x86" if config['architecture'] == 'x86' else "x64")]) .install() .depend(patch.CreateFile("CMakeLists.txt.user", partial(gen_userfile_content, usvfs)) .depend(cmake.CMakeEdit(cmake.CMakeEdit.Type.CodeBlocks).arguments(cmake_parameters) .depend(github.Source("TanninOne", "usvfs", "master") .set_destination("usvfs")) .depend("AsmJit").depend("Udis86").depend("GTest") ) ) ) for git_path, path, branch, dependencies in [ ("modorganizer-archive", "archive", "master", ["7zip", "Qt5"]), ("modorganizer-uibase", "uibase", "new_vfs_library", ["Qt5", "boost"]), ("modorganizer-lootcli", "lootcli", "master", ["LootApi", "boost"]), ("modorganizer-esptk", "esptk", "master", ["boost"]), ("modorganizer-bsatk", "bsatk", "master", ["zlib"]), ("modorganizer-nxmhandler", "nxmhandler", "master", ["Qt5"]), ("modorganizer-helper", "helper", "master", ["Qt5"]),
config["paths"]["build"], config["boost_version"].replace(".", "_")), ] if config.get('optimize', False): cmake_parameters.append( "-DOPTIMIZE_LINK_FLAGS=\"/LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF\"") usvfs = Project("usvfs") usvfs.depend( cmake.CMake().arguments( cmake_parameters + ["-DCMAKE_INSTALL_PREFIX:PATH={}".format(config["paths"]["install"])] + [ "-DPROJ_ARCH={}".format("x86" if config['architecture'] == 'x86' else "x64") ]).install() # TODO Not sure why this is required, will look into it at a later stage once we get the rest to build .depend( github.Source(config['Main_Author'], "usvfs", "master").set_destination("usvfs")).depend( "AsmJit").depend("Udis86").depend("GTest").depend( "fmtlib").depend("spdlog").depend("boost")) if config['architecture'] == 'x86_64': usvfs_32 = Project("usvfs_32") usvfs_32.depend( build.Run_With_Output( r'"{0}" unimake.py -d "{1}" --set architecture="x86" -b "build_32" -p "progress_32" -i "install_32" usvfs' .format(sys.executable, config['__build_base_path']), name="Building usvfs 32bit Dll", environment=config['__Default_environment'],
# build_step = cmake.CMake().arguments(cmake_param).install() # for dep in dependencies: # build_step.depend(dep) project = Project(git_path) if Build: if config['Appveyor_Build']: jom_cmake_step = cmake.CMakeJOM().arguments(cmake_param).install() for dep in dependencies: jom_cmake_step.depend(dep) if os.getenv("APPVEYOR_PROJECT_NAME", "") == git_path: project.depend( jom_cmake_step.depend( appveyor.SetProjectFolder( os.getenv("APPVEYOR_BUILD_FOLDER", "")))) else: project.depend( jom_cmake_step.depend( github.Source( author, git_path, branch, super_repository=tl_repo).set_destination(path))) else: vs_cmake_step = cmake.CMakeVS().arguments(cmake_param).install() for dep in dependencies: vs_cmake_step.depend(dep) vs_target = "Clean;Build" if config['rebuild'] else "Build" vs_msbuild_step = msbuild.MSBuild(
if config.get('optimize', False): cmake_parameters.append( "-DOPTIMIZE_LINK_FLAGS=\"/LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF\"") usvfs = Project("usvfs") usvfs.depend( cmake.CMake().arguments(cmake_parameters + [ "-DPROJ_ARCH={}".format("x86" if config['architecture'] == 'x86' else "x64") ]).install() # TODO Not sure why this is required, will look into it at a later stage once we get the rest to build # .depend(patch.CreateFile("CMakeLists.txt.user", partial(gen_userfile_content, usvfs)) .depend( cmake.CMakeEdit(cmake.CMakeEdit.Type.CodeBlocks).arguments( cmake_parameters).depend( github.Source( config['Main_Author'], "usvfs", "master").set_destination("usvfs")).depend( "AsmJit").depend("Udis86").depend("GTest").depend( "fmtlib").depend("spdlog").depend("boost") # )_ )) for author, git_path, path, branch, dependencies in [ (config['Main_Author'], "modorganizer-archive", "archive", "master", ["7zip", "Qt5"]), (config['Main_Author'], "modorganizer-uibase", "uibase", "new_vfs_library", ["Qt5", "boost"]), (config['Main_Author'], "modorganizer-lootcli", "lootcli", "master",
"-DCMAKE_INSTALL_PREFIX:PATH={}/install".format( config["__build_base_path"]) ] if config.get('optimize', False): cmake_parameters.append( "-DOPTIMIZE_LINK_FLAGS=\"/LTCG /INCREMENTAL:NO /OPT:REF /OPT:ICF\"") usvfs = Project("usvfs") usvfs.depend(cmake.CMake().arguments(cmake_parameters + [ "-DPROJ_ARCH={}".format("x86" if config['architecture'] == 'x86' else "x64") ]).install().depend( patch.CreateFile("CMakeLists.txt.user", partial( gen_userfile_content, usvfs)).depend( cmake.CMakeEdit(cmake.CMakeEdit.Type.CodeBlocks).arguments( cmake_parameters).depend( github.Source( "TanninOne", "usvfs", "master").set_destination("usvfs")).depend( "AsmJit").depend("Udis86").depend("GTest")))) for git_path, path, branch, dependencies in [ ("modorganizer-archive", "archive", "master", ["7zip", "Qt5"]), ("modorganizer-uibase", "uibase", "new_vfs_library", ["Qt5", "boost"]), ("modorganizer-lootcli", "lootcli", "master", ["LootApi", "boost"]), ("modorganizer-esptk", "esptk", "master", ["boost"]), ("modorganizer-bsatk", "bsatk", "master", ["zlib"]), ("modorganizer-nxmhandler", "nxmhandler", "master", ["Qt5"]), ("modorganizer-helper", "helper", "master", ["Qt5"]), ("modorganizer-game_gamebryo", "game_gamebryo", "new_vfs_library",