Source code for dials.util.installer
# XXX This is not a standalone installer! It must be used as part of the
# framework in libtbx/auto_build.
"""
Installer script for DIALS, based on automatically generated template. This
must be moved to the proper location to work.
"""
from __future__ import annotations
import os.path
import sys
from libtbx.auto_build import install_distribution
libtbx_path = os.path.join(
os.path.abspath(os.path.dirname(os.path.dirname(__file__))), "lib"
)
if libtbx_path not in sys.path:
sys.path.append(libtbx_path)
[docs]
class installer(install_distribution.installer):
# XXX most settings can be edited here
product_name = "DIALS"
dest_dir_prefix = "dials"
make_apps = []
configure_modules = install_distribution.installer.configure_modules + [
"dials",
"cbflib",
"annlib_adaptbx",
"wxtbx",
"gltbx",
]
include_gui_packages = True
remove_sources_default = False # XXX toggles removal of C++ files after building
base_package_options = ["--dials", "--all"]
source_packages = ["cctbx_bundle"] + ["dials", "cbflib", "annlib", "annlib_adaptbx"]
#
installer_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Various functions specific to DIALS go below here
#
[docs]
def product_specific_finalize_install(self, log):
# XXX remove 'phenix' dispatchers from bin directory
bin_dir = os.path.join(self.build_dir, "bin")
for file_name in os.listdir(bin_dir):
if file_name.startswith("phenix"):
os.remove(os.path.join(bin_dir, file_name))
if __name__ == "__main__":
installer(sys.argv[1:])