[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