46 lines (41 with data), 1.6 kB
#1
dirlist = {"geom2d","io","polygons2d","shape2d", "graphs",...
"geom3d","meshes3d","polynomialCurves2d"};
## Get full path, with luck we can retireve the package name from here
dirname = fileparts (canonicalize_file_name (mfilename ("fullpath")));
pp = strsplit (dirname,filesep (), true);
arch = cstrcat (octave_config_info ("canonical_host_type"),
"-", octave_config_info ("api_version"));
pkg_name = pp{end};
if strcmp (arch , pkg_name)
# If we are in Architecture dependent folder, we assume the package is the level above
pkg_name = pp{end-1};
endif
%% Get the correct path
% Search installed packages
[local_packages, global_packages] = pkg("list");
installed_pkgs_lst = {local_packages{:}, global_packages{:}};
pkg_data = installed_pkgs_lst (cellfun(@(x) ismember (x.name, {"geometry"}), ...
installed_pkgs_lst, "unif", true));
if isempty(pkg_data)
% The package is not installed yet
[pkg_folder dep_folder] = pkg ("prefix");
pkg_folder = fullfile (pkg_folder,pkg_name);
else
pkg_folder = pkg_data{1}.dir;
endif
if (! exist (fullfile (dirname, "inst"), "dir"))
%% Installing
for ii=1:length (dirlist)
addpath ( [ pkg_folder filesep() dirlist{ii}],"-end")
endfor
else
%% Testing
warning("geometry:Devel","Adding path for testing.");
for ii=1:length(dirlist)
addpath ([ dirname "/inst/" dirlist{ii}])
endfor
endif
warning('off', 'Octave:fopen-file-in-path');
clear dirlist dirname pp arch pkg_folder dep_folder pkg_name
clear global_packages ii installed_pkgs_lst local_packages pkg_data