Boost logo

Boost-Build :

From: TEMPLIE Cédric (cedric.templie_at_[hidden])
Date: 2005-08-11 10:51:05


Hello,

I just sync the last CVS version of boost build to update my build system.

Previously I had project-root.jam (that defined toolset to use) and a
Jamfile close to the project-root.jam (that define all my projects and
some constants).

I just merge the 2 files to have only Jamroot (bsically I copy the
content of Jamfile under project-root.jam).

But i have the same issue with .current-project:
error: The value of the .current-project variable
error: has magically changed after loading a Jamfile.
error: This means some of the targets might be defined a the wrong project.
error: after loading Jamfile</S:/sources>
error: expected value object(project-target)@3
error: actual value object(project-target)@5

Maybe the current version of CVS still not include the fix of that ?
I send give as attachement my Jamroot file.

Thanks in advance for answer.

TEMPLIE Cédric

 --------------050508020505090102090207 Content-Type: text/plain;
name="Jamroot"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="Jamroot"

import toolset : using ;
import modules ;
import set : intersection ;
import sequence : length ;

#########################
# #
# Command line checking #
# #
#########################
#User have to set the toolset to use in the command line
#Only one toolset can be used at a time
ARGV = [ modules.peek : ARGV ] ;

#Retrieve CUSTOMER
CUSTOMER_TMP = [ modules.peek : CUSTOMER ] ;

#Check customer
if ! $(CUSTOMER_TMP)
{
CUSTOMER_TMP = Echo ;
}

constant CUSTOMER : $(CUSTOMER_TMP) ;

#List available compiler
AVAILABLE_COMPILER = msvc-7.1 ;

#Retrieve compiler(s) given by user
constant COMPILER : [ intersection $(AVAILABLE_COMPILER) : $(ARGV) ] ;

#A compiler is defined ?
if ! $(COMPILER)
{
Echo "No, or invalid toolset defined on the command line... " ;
Echo "Possible values are :" ;
Echo "- msvc-7.1 => Microsoft Visual Studio 7.1" ;
EXIT ;
}
else
{
#Only one compiler is defined ?
if [ sequence.length $(COMPILER) ] > 1
{
Echo "Only one toolset can be used at a time..." ;
Echo "The following toolset are defined :" ;
for local c in $(COMPILER)
{
ECHO "- "$(c) ;
}
EXIT ;
}
}

ECHO "Build for customer : "$(CUSTOMER) ;

#########################
# #
# Constant declaration #
# #
#########################
path-constant MSVC_6.0_ROOT : "C:/Echo/MicrosoftVisualStudio/6.0/VC98" ;
path-constant MSVC_7.1_ROOT : "C:/Echo/MicrosoftVisualStudio/7.1/VC7" ;
path-constant STLPORT_ROOT : "S:/results/ThirdParty/build/stlport" ;
path-constant QT_ROOT : "C:/Echo/Qt/" ;

#########################
# #
# Toolset declaration #
# #
#########################

######################
# MSVC configuration #
######################
# Configure msvc (default version, searched in standard location
# and PATH).
using msvc : 7.1 : $(MSVC_7.1_ROOT)"/bin/cl.exe" ;
using msvc : 6.0 : $(MSVC_6.0_ROOT)"/Bin/cl.exe" ;

#########################
# STLPort configuration #
#########################
# Configure, specifying location of both headers and libraries
using stlport : : $(STLPORT_ROOT)/stlport $(STLPORT_ROOT) ;

####################
# QT configuration #
####################
# Configure with explicit installation prefix
using qt4 : $(QT_ROOT) ;

############################################
#--------------- WARNING ------------------#
# #
# TEMPORARELY USE RELATIVE PATH FOR GLOB #
# ON RESULT FOLDER. THIS IS DUE TO A BJAM #
# ISSUE WHEN TRYING TO GLOB ON AN ABSOLUTE #
# PATH... #
# #
#--------------- WARNING ------------------#
############################################

import path ;

#########################
# #
# Constants declaration #
# #
#########################

path-constant BUILD_DIR : "C:/ECHO_ROOT/results/"$(CUSTOMER)"/build" ;

#See top warning for this variable definition
path-constant CUSTOMER_RESULT_DIR : "S:/results/"$(CUSTOMER)"/build" ;
constant RELATIVE_CUSTOMER_RESULT_DIR : "../results/"$(CUSTOMER)"/build" ;

#Not customer specific results
path-constant THIRDPARTY_RESULT_DIR : "S:/results/ThirdParty/build" ;
constant RELATIVE_THIRDPARTY_RESULT_DIR : "../results/ThirdParty/build" ;

path-constant MSSDK_INCLUDE : "C:/Echo/MSSDK/Include" ;
path-constant MSSDK_LIB : "C:/Echo/MSSDK/Lib" ;

################
# #
# Root Project #
# #
################
#Define the root project
#All subprojects will use same settings than this one

project root
: requirements
#DEFINE
#RELEASE
<variant>release:<define>NDEBUG
#DEBUG
<variant>debug:<define>_DEBUG
#INCLUDE
<include>$(STLPORT_ROOT)/stlport&&$(MSSDK_INCLUDE)
#LIB-Path
<library-path>$(STLPORT_ROOT)&&$(MSSDK_LIB)
#LIB
#<library>/stlport//stlport/<variant>release
#MSVC
#DEFINE
<toolset>msvc:<define>WIN32
<toolset>msvc:<define>_WINDOWS
<toolset>msvc:<define>_MBCS
: default-build <threading>multi
: build-dir [ path.make $(BUILD_DIR) ]
;

#################################
# #
# Echo Common - Applications #
# #
#################################

#-----------#
# FetchFile #
#-----------#
constant FetchFile_ROOT : "Echo/Common/Applications/FetchFile" ;
if [ glob $(FetchFile_ROOT)/Jamfile ]
{
build-project $(FetchFile_ROOT) ;
}

#----------#
# Launcher #
#----------#
constant Launcher_ROOT : "Echo/Common/Applications/Launcher" ;
if [ glob $(Launcher_ROOT)/Jamfile ]
{
build-project $(Launcher_ROOT) ;
}

############################
# #
# Echo Common - Libraries #
# #
############################

#----------#
# cryptAPI #
#----------#
constant cryptAPI_ROOT : "Echo/Common/Libraries/cryptAPI" ;
if [ glob $(cryptAPI_ROOT)/Jamfile ]
{
use-project /cryptAPI : $(cryptAPI_ROOT) ;
build-project $(cryptAPI_ROOT) ;
Echo "Use cryptAPI project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(cryptAPI_ROOT)/Jamfile ]
{
use-project /cryptAPI : $(CUSTOMER_RESULT_DIR)/$(cryptAPI_ROOT) ;
Echo "Use cryptAPI project defined in results" ;
}
else
{
Echo "cryptAPI project not found" ;
}
}

#-----#
# ExT #
#-----#
constant ExT_ROOT : "Echo/Common/Libraries/ExT" ;
if [ glob $(ExT_ROOT)/Jamfile ]
{
use-project /ExT : $(ExT_ROOT) ;
build-project $(ExT_ROOT) ;
Echo "Use ExT project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(ExT_ROOT)/Jamfile ]
{
use-project /ExT : $(CUSTOMER_RESULT_DIR)/$(ExT_ROOT) ;
Echo "Use ExT project defined in results" ;
}
else
{
Echo "ExT project not found" ;
}
}

#-----------#
# ExTLogger #
#-----------#
constant ExTLogger_ROOT : "Echo/Common/Libraries/ExTLogger" ;
if [ glob $(ExTLogger_ROOT)/Jamfile ]
{
use-project /ExTLogger : $(ExTLogger_ROOT) ;
build-project $(ExTLogger_ROOT) ;
Echo "Use ExTLogger project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(ExTLogger_ROOT)/Jamfile ]
{
use-project /ExTLogger : $(CUSTOMER_RESULT_DIR)/$(ExTLogger_ROOT) ;
Echo "Use ExTLogger project defined in results" ;
}
else
{
Echo "ExTLogger project not found" ;
}
}

#------------------------#
# ExTExceptionManagement #
#------------------------#
constant ExTExceptionManagement_ROOT : "Echo/Common/Libraries/ExTExceptionManagement" ;
if [ glob $(ExTExceptionManagement_ROOT)/Jamfile ]
{
use-project /ExTExceptionManagement : $(ExTExceptionManagement_ROOT) ;
build-project $(ExTExceptionManagement_ROOT) ;
Echo "Use ExTExceptionManagement project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(ExTExceptionManagement_ROOT)/Jamfile ]
{
use-project /ExTExceptionManagement : $(CUSTOMER_RESULT_DIR)/$(ExTExceptionManagement_ROOT) ;
Echo "Use ExTExceptionManagement project defined in results" ;
}
else
{
Echo "ExTExceptionManagement project not found" ;
}
}

#--------------#
# ext_cryptopp #
#--------------#
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/Echo/Common/Libraries/ext_cryptopp/$(COMPILER)/Jamfile ]
{
use-project /ext_cryptopp : $(CUSTOMER_RESULT_DIR)/Echo/Common/Libraries/ext_cryptopp/$(COMPILER) ;
Echo "Use ext_cryptopp project defined in results" ;
}
else
{
Echo "ext_cryptopp project not found" ;
}

#---------#
# su_base #
#---------#
constant su_base_ROOT : "Echo/Common/Libraries/su_base" ;
if [ glob $(su_base_ROOT)/Jamfile ]
{
use-project /su_base : $(su_base_ROOT) ;
build-project $(su_base_ROOT) ;
Echo "Use su_base project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(su_base_ROOT)/Jamfile ]
{
use-project /su_base : $(CUSTOMER_RESULT_DIR)/$(su_base_ROOT) ;
Echo "Use su_base project defined in results" ;
}
else
{
Echo "su_base project not found" ;
}
}

#-----------#
# su_thread #
#-----------#
constant su_thread_ROOT : "Echo/Common/Libraries/su_thread" ;
if [ glob $(su_thread_ROOT)/Jamfile ]
{
use-project /su_thread : $(su_thread_ROOT) ;
build-project $(su_thread_ROOT) ;
Echo "Use su_thread project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(su_thread_ROOT)/Jamfile ]
{
use-project /su_thread : $(CUSTOMER_RESULT_DIR)/$(su_thread_ROOT) ;
Echo "Use su_thread project defined in results" ;
}
else
{
Echo "su_thread project not found" ;
}
}

#-------------#
# usb_devices #
#-------------#
constant usb_devices_ROOT : "Echo/Common/Libraries/usb_devices" ;
if [ glob $(usb_devices_ROOT)/Jamfile ]
{
use-project /usb_devices : $(usb_devices_ROOT) ;
build-project $(usb_devices_ROOT) ;
Echo "Use usb_devices project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(usb_devices_ROOT)/Jamfile ]
{
use-project /usb_devices : $(CUSTOMER_RESULT_DIR)/$(usb_devices_ROOT) ;
Echo "Use usb_devices project defined in results" ;
}
else
{
Echo "usb_devices project not found" ;
}
}

#--------#
# logger #
#--------#
constant logger_ROOT : "Echo/Common/Libraries/logger" ;
if [ glob $(logger_ROOT)/Jamfile ]
{
use-project /logger : $(logger_ROOT) ;
build-project $(logger_ROOT) ;
Echo "Use logger project defined in sources" ;
}
else
{
if [ glob $(RELATIVE_CUSTOMER_RESULT_DIR)/$(logger_ROOT)/Jamfile ]
{
use-project /logger : $(CUSTOMER_RESULT_DIR)/$(logger_ROOT) ;
Echo "Use logger project defined in results" ;
}
else
{
Echo "logger project not found" ;
}
}

###########################
# #
# Third Party - Libraries #
# #
###########################

#---------#
# log4cpp #
#---------#
if [ glob $(RELATIVE_THIRDPARTY_RESULT_DIR)/log4cpp/Jamfile ]
{
use-project /log4cpp : $(THIRDPARTY_RESULT_DIR)/log4cpp ;
Echo "Use log4cpp project defined in results" ;
}
else
{
Echo "log4cpp project not found" ;
}

#---------#
# pthread #
#---------#
if [ glob $(RELATIVE_THIRDPARTY_RESULT_DIR)/pthread/Jamfile ]
{
use-project /pthread : $(THIRDPARTY_RESULT_DIR)/pthread ;
Echo "Use pthread project defined in results" ;
}
else
{
Echo "pthread project not found" ;
}

#------#
# zlib #
#------#
if [ glob $(RELATIVE_THIRDPARTY_RESULT_DIR)/zlib/Jamfile ]
{
use-project /zlib : $(THIRDPARTY_RESULT_DIR)/zlib ;
Echo "Use zlib project defined in results" ;
}
else
{
Echo "zlib project not found" ;
}

#------------#
# FIU810-SDK #
#------------#
if [ glob $(RELATIVE_THIRDPARTY_RESULT_DIR)/Sony/FIU810-SDK/Jamfile ]
{
use-project /fiu810 : $(THIRDPARTY_RESULT_DIR)/Sony/FIU810-SDK ;
Echo "Use FIU810-SDK project defined in results" ;
}
else
{
Echo "FIU810-SDK project not found" ;
}

 --------------050508020505090102090207--


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk