[CMake] (no subject)

alaterale at elitemail.org alaterale at elitemail.org
Wed May 25 15:59:48 EDT 2005


Hi again :)

I have yet another question about something in cmake :)  For some
reason, variables seem to have different actions depending on where it
is used.  I'm trying to make a build system for our product and it seems
that dereferencing variables doesn't work in one place, but does in
another...

####################################################
## Define project info
PROJECT(ElevatorAction JAVA)
SET(program_base_name "elevatorAction")
SET(ver "v5.0.0")
####################################################

####################################################
## Licenses
SET(default_license_dir "license")
SET(sprint_license_lib
"${default_license_dir}/SprintLicenseClasses.zip")
####################################################

####################################################
## MIDP
SET(midp_home "$ENV{MIDP_HOME}")
####################################################

####################################################
## Proguard
SET(default_proguard_path "libs/ProGuard/proguard.jar")
IF(ENV{PROGUARD})
	SET(proguard_path "$ENV{PROGUARD}")
ELSE(ENV{PROGUARD})
	SET(proguard_path "${default_proguard_path}")
ENDIF(ENV{PROGUARD})
####################################################

####################################################
## Sprint
SET(default_sprint_sdk_dir "libs/SprintPCSWTK")
SET(default_sprint_classpath "sprintapi.zip")
####################################################

####################################################
## Nokia
SET(default_series60_sdk_dir
"libs/Nokia/Series_60_MIDP_SDK_for_Symbian_OS_v_1_2_1")
SET(default_series60_classpath "j2me-debug.zip")
SET(default_series40_sdk_dir "libs/Nokia/Nokia_S40_DP20_SDK_1_0")
SET(default_series40_classpath "classes.zip")
####################################################

####################################################
## Motorola
SET(default_motorola_midp2_sdk_dir "libs/Motorola/EmulatorA.1")
SET(default_motorola_midp2_classpath "stubclasses.zip")
####################################################

####################################################
## Set program name
IF($ENV{S5300})
	
	SET(program_name "game-prod-${program_base_name}-v7")
ENDIF($ENV{S5300})

IF($ENV{S8100})
	SET(program_name "game-prod-${program_base_name}-v12")
ENDIF($ENV{S8100})

IF(ENV{S7300})
	SET(program_name "game-prod-${program_base_name}-v24")
ENDIF(ENV{S7300})

IF(NOT ENV{S5300} AND NOT ENV{S8100} AND NOT ENV{S7300})
	SET(program_name "sony_f_en_${program_base_name}")
ENDIF(NOT ENV{S5300} AND NOT ENV{S8100} AND NOT ENV{S7300})
####################################################

####################################################
## Sprint MIDP
IF(NOT ENV{MIDP_HOME} AND "$ENV{SOUND}" STREQUAL "sprint")
	MESSAGE(STATUS "===============asdf=============")
	SET(midp_home "${default_sprint_sdk_dir}")
ENDIF(NOT ENV{MIDP_HOME} AND "$ENV{SOUND}" STREQUAL "sprint")

IF("$ENV{SOUND}" STREQUAL "sprint")
	SET(midp_lib "${midp_home}${default_sprint_classpath}")
ENDIF("$ENV{SOUND}" STREQUAL "sprint")
####################################################

####################################################
## Nokia 3650, 7650 MIDP
IF(NOT ENV{MIDP_HOME} AND ENV{N35650} OR ENV{N7650})
	SET(midp_home "${default_series60_sdk_dir}")
ENDIF(NOT ENV{MIDP_HOME} AND ENV{N35650} OR ENV{N7650})

IF(ENV{N3650} OR ENV{N7650})
	SET(midp_lib "${midp_home}${default_series60_classpath}")
ENDIF(ENV{N3650} OR ENV{N7650})
####################################################

####################################################
## Nokia 3595, 7210 MIDP
IF(NOT ENV{MIDP_HOME} AND ENV{N3595} OR ENV{N7210})
	SET(midp_home "${default_series40_sdk_dir}")
ENDIF(NOT ENV{MIDP_HOME} AND ENV{N3595} OR ENV{N7210})

IF(ENV{N3595} OR ENV{N7210})
	SET(midp_lib "${midp_home}${default_series40_classpath}")
ENDIF(ENV{N3595} OR ENV{N7210})
####################################################

####################################################
## Motorola MIDP
IF(NOT ENV{MIDP_HOME} AND "$ENV{SOUND}" STREQUAL "midp2")
	SET(midp_home "${default_motorola_midp2_sdk_dir}")
ENDIF(NOT ENV{MIDP_HOME} AND "$ENV{SOUND}" STREQUAL "midp2")

IF("$ENV{SOUND}" STREQUAL "midp2" AND ENV{V525} OR ENV{V600} OR
ENV{E715} OR ENV{MYV75})
	SET(midp_lib "${midp_home}${default_motorola_midp2_classpath}")
ENDIF("$ENV{SOUND}" STREQUAL "midp2" AND ENV{V525} OR ENV{V600} OR
ENV{E715} OR ENV{MYV75})
####################################################

####################################################
## All libraries
SET(all_libs "${midp_lib};${sprint_license_lib};")
####################################################

####################################################
## Print build information
MESSAGE(STATUS "program_name is |${program_name}|")
MESSAGE(STATUS "ver is |${ver}|")
MESSAGE(STATUS "HANDSET is |$ENV{HANDSET}|")
MESSAGE(STATUS "SOUND is |$ENV{SOUND}|")
MESSAGE(STATUS "midp_lib is |${midp_lib}|")
MESSAGE(STATUS "midp_home is |${midp_home}|")
MESSAGE(STATUS "sprint license lib is |${sprint_license_lib}|")
MESSAGE(STATUS "total lib is |${all_libs}|")
####################################################

####################################################
## All but N7210 and N3595 Source Folder
IF(NOT ENV{N7210} AND NOT ENV{N3595})
	SET(game_src "src")
ENDIF(NOT ENV{N7210} AND NOT ENV{N3595})
####################################################


As far as ENV{} goes, sometimes it seems to need the $ENV{A}, sometimes
it uses the bare variable name ENV{A} and sometimes it needs the quotes
around them to work.  For example, STREQUAL sometimes doesn't work with
the quotes and sometimes does.  Can anyone give a clear description of
variable usage, including deferencing and such?  It's getting kind of
confusing..

Thanks!


More information about the CMake mailing list