%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Default library paths for core resources
% Last updated on April 8, 2023
%
% This file is part of Logtalk
% SPDX-FileCopyrightText: 1998-2023 Paulo Moura
% SPDX-License-Identifier: Apache-2.0
%
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% logtalk_library_path(Library, Path)
%
% paths must always end with a "/"
:- multifile(logtalk_library_path/2).
:- dynamic(logtalk_library_path/2).
% Logtalk startup directory
:- initialization((
( '$lgt_environment_variable'('LOGTALK_STARTUP_DIRECTORY', _) ->
LOGTALK_STARTUP_DIRECTORY = '$LOGTALK_STARTUP_DIRECTORY/'
; '$lgt_current_directory'(LOGTALK_STARTUP_DIRECTORY0),
( sub_atom(LOGTALK_STARTUP_DIRECTORY0, _, _, 0, '/') ->
LOGTALK_STARTUP_DIRECTORY = LOGTALK_STARTUP_DIRECTORY0
; atom_concat(LOGTALK_STARTUP_DIRECTORY0, '/', LOGTALK_STARTUP_DIRECTORY)
)
),
asserta(logtalk_library_path(startup, LOGTALK_STARTUP_DIRECTORY))
)).
% Logtalk installation directory
logtalk_library_path(logtalk_home, '$LOGTALKHOME/').
% Logtalk user directory
logtalk_library_path(logtalk_user, '$LOGTALKUSER/').
% user home directory
logtalk_library_path(home, HOME) :-
( '$lgt_environment_variable'('HOME', _) ->
% likely a POSIX system but Windows users
% may also define this environment variable
HOME = '$HOME/'
; '$lgt_environment_variable'('USERPROFILE', _) ->
% Windows systems define this environment variable
HOME = '$USERPROFILE/'
; fail
).
% core library, required for Logtalk startup
logtalk_library_path(core, logtalk_home('core/')).
% main directories in the Logtalk distribution not defined elsewhere
logtalk_library_path(coding, logtalk_user('coding/')).
logtalk_library_path(tests, logtalk_user('tests/')).