summaryrefslogtreecommitdiffstats
path: root/Modules/UseEcos.cmake
diff options
context:
space:
mode:
authorAlexander Neundorf <neundorf@kde.org>2007-01-17 18:45:28 (GMT)
committerAlexander Neundorf <neundorf@kde.org>2007-01-17 18:45:28 (GMT)
commitc6f74dfe3ba8b9bdfe38327677dd61e948b94d26 (patch)
treee3c864d4f8090df309c72ca554b45ce794fbc31b /Modules/UseEcos.cmake
parente264771122c01176b2a31cf98a9343c091599216 (diff)
downloadCMake-c6f74dfe3ba8b9bdfe38327677dd61e948b94d26.zip
CMake-c6f74dfe3ba8b9bdfe38327677dd61e948b94d26.tar.gz
CMake-c6f74dfe3ba8b9bdfe38327677dd61e948b94d26.tar.bz2
BUG: also check that tclsh is available, otherwise you can't build any eCos
stuff ENH: make the name of the config file ecos.ecc adjustable via the new variable ECOS_CONFIG_FILE Alex
Diffstat (limited to 'Modules/UseEcos.cmake')
-rw-r--r--Modules/UseEcos.cmake24
1 files changed, 18 insertions, 6 deletions
diff --git a/Modules/UseEcos.cmake b/Modules/UseEcos.cmake
index 7979831..c9716af 100644
--- a/Modules/UseEcos.cmake
+++ b/Modules/UseEcos.cmake
@@ -12,13 +12,14 @@
# It contains the following variables:
# ECOS_DEFINITIONS
# ECOSCONFIG_EXECUTABLE
+# ECOS_CONFIG_FILE - defaults to ecos.ecc, if your eCos configuration file has a different name, adjust this variable
# for internal use only:
# ECOS_ADD_TARGET_LIB
INCLUDE(AddFileDependencies)
-#first check that ecosconfig is available
+# first check that ecosconfig is available
FIND_PROGRAM(ECOSCONFIG_EXECUTABLE NAMES ecosconfig)
IF(NOT ECOSCONFIG_EXECUTABLE)
MESSAGE(SEND_ERROR "ecosconfig was not found. Either include it in the system path or set it manually using ccmake.")
@@ -26,13 +27,20 @@ ELSE(NOT ECOSCONFIG_EXECUTABLE)
MESSAGE(STATUS "Found ecosconfig: ${ECOSCONFIG_EXECUTABLE}")
ENDIF(NOT ECOSCONFIG_EXECUTABLE)
-#check that ECOS_REPOSITORY is set correctly
+# check that ECOS_REPOSITORY is set correctly
IF (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
MESSAGE(SEND_ERROR "The environment variable ECOS_REPOSITORY is not set correctly. Set it to the directory which contains the file ecos.db")
ELSE (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
MESSAGE(STATUS "ECOS_REPOSITORY is set to $ENV{ECOS_REPOSITORY}")
ENDIF (NOT EXISTS $ENV{ECOS_REPOSITORY}/ecos.db)
+# check that tclsh (coming with TCL) is available, otherwise ecosconfig doesn't work
+FIND_PACKAGE(Tclsh)
+IF (NOT TCL_TCLSH)
+ MESSAGE(SEND_ERROR "The TCL tclsh was not found. Please install TCL, it is required for building eCos applications.")
+ELSE (NOT TCL_TCLSH)
+ MESSAGE(STATUS "tlcsh found: ${TCL_TCLSH}")
+ENDIF (NOT TCL_TCLSH)
#add the globale include-diretories
#usage: ECOS_ADD_INCLUDE_DIRECTORIES()
@@ -115,6 +123,10 @@ MACRO(ECOS_ADJUST_DIRECTORY _target_FILES )
ENDFOREACH (_current_FILE)
ENDMACRO(ECOS_ADJUST_DIRECTORY)
+# the default ecos config file name
+# maybe in the future also out-of-source builds may be possible
+SET(ECOS_CONFIG_FILE ecos.ecc)
+
#creates the dependancy from all source files on the ecos target.ld,
#adds the command for compiling ecos and adds target.ld to the make_clean_files
MACRO(ECOS_ADD_TARGET_LIB)
@@ -137,8 +149,8 @@ MACRO(ECOS_ADD_TARGET_LIB)
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/ecos/makefile
COMMAND sh
- ARGS -c \" cd ecos\; ${ECOSCONFIG_EXECUTABLE} tree || exit -1\;\"
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/ecos.ecc
+ ARGS -c \" cd ecos\; ${ECOSCONFIG_EXECUTABLE} --config=${ECOS_CONFIG_FILE} tree || exit -1\;\"
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/${ECOS_CONFIG_FILE}
)
ADD_CUSTOM_TARGET( ecos make -C ${CMAKE_CURRENT_SOURCE_DIR}/ecos/ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/ecos/makefile )
@@ -194,8 +206,8 @@ MACRO(ECOS_ADD_EXECUTABLE _exe_NAME )
ADDITIONAL_MAKE_CLEAN_FILES "${ECOS_ADD_MAKE_CLEAN_FILES}"
)
-#cd $1; ls -a | grep --invert-match -e "\(.*CVS\)\|\(.*ecos\.ecc\)\|\(.*\.cvsignore\)\|\(\.\.\?\)" | xargs rm -rf; touch ecos.ecc
- ADD_CUSTOM_TARGET(ecosclean sh -c \"cd ${CMAKE_CURRENT_SOURCE_DIR}/ecos\; ls -a | grep --invert-match -e \\\"\\\(.*CVS\\\)\\|\\\(.*ecos\\.ecc\\\)\\|\\\(.*\\.cvsignore\\\)\\|\\\(^\\.\\.\\?\\\)\\\" |xargs rm -rf\; touch ecos.ecc \")
+#cd $1; ls -a | grep --invert-match -e "\(.*CVS\)\|\(.*ecos\.ecc\)" | xargs rm -rf; touch ecos.ecc
+ ADD_CUSTOM_TARGET(ecosclean sh -c \"cd ${CMAKE_CURRENT_SOURCE_DIR}/ecos\; ls | grep --invert-match -e \\\"\\\(.*CVS\\\)\\|\\\(.*ecos\\.ecc\\\)\\\" |xargs rm -rf\; touch ${ECOS_CONFIG_FILE} \")
ADD_CUSTOM_TARGET(normalclean ${CMAKE_MAKE_PROGRAM} clean -C ${CMAKE_CURRENT_SOURCE_DIR})
ADD_DEPENDENCIES (ecosclean normalclean)