Revision: 41136
http://brlcad.svn.sourceforge.net/brlcad/?rev=41136&view=rev
Author: starseeker
Date: 2010-10-25 19:16:36 +0000 (Mon, 25 Oct 2010)
Log Message:
-----------
Still not working, but add itk CMake and install init.tcl for tclsh.
Modified Paths:
--------------
brlcad/branches/cmake/src/other/CMakeLists.txt
brlcad/branches/cmake/src/other/tcl/CMakeLists.txt
Added Paths:
-----------
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckCFileRuns.cmake
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckPrototypeExists.cmake
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/ResolveCompilerPaths.cmake
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_header_test.c
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_test.c
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/ctypes_test.c
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/sys_wait_test.c
brlcad/branches/cmake/src/other/incrTcl/itk/CMakeLists.txt
Modified: brlcad/branches/cmake/src/other/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/CMakeLists.txt 2010-10-25 17:30:00 UTC
(rev 41135)
+++ brlcad/branches/cmake/src/other/CMakeLists.txt 2010-10-25 19:16:36 UTC
(rev 41136)
@@ -166,6 +166,9 @@
IF(BRLCAD_BUILD_LOCAL_TCL)
ADD_SUBDIRECTORY(incrTcl/itcl)
ADD_DEPENDENCIES(itcl tcl)
+ SET(ITCL_LIBRARY itcl CACHE STRING "ITCL_LIBRARY" FORCE)
+ get_directory_property(ITCL_INCLUDE_PATH DIRECTORY incrTcl/itcl
DEFINITION ITCL_INCLUDE_PATH)
+ SET(ITCL_INCLUDE_PATH "${ITCL_INCLUDE_PATH}" CACHE STRING "Itcl include
paths" FORCE)
ENDIF(BRLCAD_BUILD_LOCAL_TCL)
IF(BRLCAD_BUILD_LOCAL_ITCL)
SET(ITCL_VERSION "3.4" CACHE STRING "ITCL_VERSION" FORCE)
@@ -174,12 +177,9 @@
ENDIF(BRLCAD_BUILD_LOCAL_ITCL)
FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ITCL_VERSION
\"${ITCL_VERSION}\"\n")
-IF(MSVC)
- THIRD_PARTY_NMAKE_EXTERNAL_PROJECT(ITK itk src/other/incrTcl/itk win
"TCLDIR=${CMAKE_SOURCE_DIR}/src/other/tcl;TKDIR=${CMAKE_SOURCE_DIR}/src/other/tk")
-ELSE(MSVC)
- THIRD_PARTY_AUTOCONF_EXTERNAL_PROJECT(ITK itk src/other/incrTcl/itk ""
"--with-tcl=${TCL_CONF_PREFIX};--with-tk=${TK_CONF_PREFIX};--with-tcl-private=${CMAKE_SOURCE_DIR}/src/other/tcl;--with-tk-private=${CMAKE_SOURCE_DIR}/src/other/tk")
-ENDIF(MSVC)
+#THIRD_PARTY_AUTOCONF_EXTERNAL_PROJECT(ITK itk src/other/incrTcl/itk ""
"--with-tcl=${TCL_CONF_PREFIX};--with-tk=${TK_CONF_PREFIX};--with-tcl-private=${CMAKE_SOURCE_DIR}/src/other/tcl;--with-tk-private=${CMAKE_SOURCE_DIR}/src/other/tk")
IF(BRLCAD_BUILD_LOCAL_ITK)
+ ADD_SUBDIRECTORY(incrTcl/itk)
ADD_DEPENDENCIES(itk itcl tcl tk)
SET(ITK_VERSION "3.3" CACHE STRING "ITK_VERSION" FORCE)
ELSE(BRLCAD_BUILD_LOCAL_ITK)
Added: brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckCFileRuns.cmake
===================================================================
--- brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckCFileRuns.cmake
(rev 0)
+++ brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckCFileRuns.cmake
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,84 @@
+# - Check if the given C source code compiles and runs.
+# CHECK_C_SOURCE_RUNS(<code> <var>)
+# <code> - source code to try to compile
+# <var> - variable to store the result
+# (1 for success, empty for failure)
+# The following variables may be set before calling this macro to
+# modify the way the check is run:
+#
+# CMAKE_REQUIRED_FLAGS = string of compile command line flags
+# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+# CMAKE_REQUIRED_INCLUDES = list of include directories
+# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
+
+#=============================================================================
+# Copyright 2006-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+# License text for the above reference.)
+
+MACRO(CHECK_C_FILE_RUNS SOURCE VAR)
+ IF("${VAR}" MATCHES "^${VAR}$")
+ SET(MACRO_CHECK_FUNCTION_DEFINITIONS
+ "-D${VAR} ${CMAKE_REQUIRED_FLAGS}")
+ IF(CMAKE_REQUIRED_LIBRARIES)
+ SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES
+ "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
+ ELSE(CMAKE_REQUIRED_LIBRARIES)
+ SET(CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES)
+ ENDIF(CMAKE_REQUIRED_LIBRARIES)
+ IF(CMAKE_REQUIRED_INCLUDES)
+ SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES
+ "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
+ ELSE(CMAKE_REQUIRED_INCLUDES)
+ SET(CHECK_C_SOURCE_COMPILES_ADD_INCLUDES)
+ ENDIF(CMAKE_REQUIRED_INCLUDES)
+
+ MESSAGE(STATUS "Performing Test ${VAR}")
+ TRY_RUN(${VAR}_EXITCODE ${VAR}_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${SOURCE}
+ COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
${FILE_RUN_DEFINITIONS}
+ CMAKE_FLAGS
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
+ -DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
+ "${CHECK_C_SOURCE_COMPILES_ADD_LIBRARIES}"
+ "${CHECK_C_SOURCE_COMPILES_ADD_INCLUDES}"
+ COMPILE_OUTPUT_VARIABLE OUTPUT)
+ # if it did not compile make the return value fail code of 1
+ IF(NOT ${VAR}_COMPILED)
+ SET(${VAR}_EXITCODE 1)
+ ENDIF(NOT ${VAR}_COMPILED)
+ # if the return value was 0 then it worked
+ IF("${${VAR}_EXITCODE}" EQUAL 0)
+ SET(${VAR} 1 CACHE INTERNAL "Test ${VAR}")
+ MESSAGE(STATUS "Performing Test ${VAR} - Success")
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
+ "Performing C SOURCE FILE Test ${VAR} succeded with the following
output:\n"
+ "${OUTPUT}\n"
+ "Return value: ${${VAR}}\n"
+ "Source file was:\n${SOURCE}\n")
+ ELSE("${${VAR}_EXITCODE}" EQUAL 0)
+ IF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES
"FAILED_TO_RUN")
+ SET(${VAR} "${${VAR}_EXITCODE}")
+ ELSE(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES
"FAILED_TO_RUN")
+ SET(${VAR} "" CACHE INTERNAL "Test ${VAR}")
+ ENDIF(CMAKE_CROSSCOMPILING AND "${${VAR}_EXITCODE}" MATCHES
"FAILED_TO_RUN")
+
+ MESSAGE(STATUS "Performing Test ${VAR} - Failed")
+ FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing C SOURCE FILE Test ${VAR} failed with the following
output:\n"
+ "${OUTPUT}\n"
+ "Return value: ${${VAR}_EXITCODE}\n"
+ "Source file was:\n${SOURCE}\n")
+
+ ENDIF("${${VAR}_EXITCODE}" EQUAL 0)
+ ENDIF("${VAR}" MATCHES "^${VAR}$")
+ENDMACRO(CHECK_C_FILE_RUNS)
+
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckCFileRuns.cmake
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckPrototypeExists.cmake
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckPrototypeExists.cmake
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckPrototypeExists.cmake
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,41 @@
+# - Check if the prototype for a function exists.
+# CHECK_PROTOTYPE_EXISTS (FUNCTION HEADER VARIABLE)
+#
+# FUNCTION - the name of the function you are looking for
+# HEADER - the header(s) where the prototype should be declared
+# VARIABLE - variable to store the result
+#
+# The following variables may be set before calling this macro to
+# modify the way the check is run:
+#
+# CMAKE_REQUIRED_FLAGS = string of compile command line flags
+# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
+# CMAKE_REQUIRED_INCLUDES = list of include directories
+
+# Copyright (c) 2006, Alexander Neundorf, <[email protected]>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+
+INCLUDE(CheckCXXSourceCompiles)
+
+MACRO (CHECK_PROTOTYPE_EXISTS _SYMBOL _HEADER _RESULT)
+ SET(_INCLUDE_FILES)
+ FOREACH (it ${_HEADER})
+ SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n")
+ ENDFOREACH (it)
+
+ SET(_CHECK_PROTO_EXISTS_SOURCE_CODE "
+${_INCLUDE_FILES}
+int main()
+{
+#ifndef ${_SYMBOL}
+ int i = sizeof(&${_SYMBOL});
+#endif
+ return 0;
+}
+")
+ CHECK_CXX_SOURCE_COMPILES("${_CHECK_PROTO_EXISTS_SOURCE_CODE}" ${_RESULT})
+ENDMACRO (CHECK_PROTOTYPE_EXISTS _SYMBOL _HEADER _RESULT)
+
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckPrototypeExists.cmake
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,279 @@
+# CMake does not by default include functionality similar to autoheader in
+# GNU Autotools, but is it not difficult to reproduce. There are two aspects
+# to these tests - the first being the generation of a header file defining
+# variables, and the second being the running of various custom tests to
establish
+# whether features actually work on a given platform. The first step is
handled
+# by creating wrapper macros for the standard CMake functions that also write
+# to a CONFIG_H_FILE if it is defined, with a couple extra conveniences. The
second
+# and more labor intensive step is to create tests using the CMake functions
+# that reproduce the functionality tests expected by source code using
variables
+# defined by Autotools tests. This file does not have all such tests, for
each project
+# has its own requirements and many thousands of these tests can be devised.
The macro
+# collection below covers the requirements of the projects that have thus far
been
+# converted to use this particular compilation mechanism, and will be added to
as
+# needed.
+
+
+# Automate putting variables from tests into a config.h.in file,
+# and otherwise wrap check macros in extra logic as needed
+
+INCLUDE(CheckFunctionExists)
+INCLUDE(CheckIncludeFile)
+INCLUDE(CheckIncludeFiles)
+INCLUDE(CheckIncludeFileCXX)
+INCLUDE(CheckTypeSize)
+INCLUDE(CheckLibraryExists)
+INCLUDE(CheckStructHasMember)
+INCLUDE(CheckCSourceCompiles)
+INCLUDE(ResolveCompilerPaths)
+
+MACRO(CHECK_FUNCTION_EXISTS_H function var)
+ CHECK_FUNCTION_EXISTS(${function} ${var})
+ if(CONFIG_H_FILE AND ${var})
+ FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+ endif(CONFIG_H_FILE AND ${var})
+ENDMACRO(CHECK_FUNCTION_EXISTS_H)
+
+MACRO(CHECK_INCLUDE_FILE_H filename var)
+ CHECK_INCLUDE_FILE(${filename} ${var})
+ if(CONFIG_H_FILE AND ${var})
+ FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+ endif(CONFIG_H_FILE AND ${var})
+ENDMACRO(CHECK_INCLUDE_FILE_H)
+
+MACRO(CHECK_INCLUDE_FILE_USABILITY_H filename var)
+ CHECK_INCLUDE_FILE_H(${filename} HAVE_${var})
+ IF(HAVE_${var})
+ SET(HEADER_SRC "
+ #include <${filename}>
+ main(){};
+ ")
+ CHECK_C_SOURCE_COMPILES("${HEADER_SRC}" ${var}_USABLE)
+ ENDIF(HAVE_${var})
+ IF(NOT HAVE_${var} OR NOT ${var}_USABLE)
+ IF(CONFIG_H_FILE)
+ FILE(APPEND ${CONFIG_H_FILE} "#define NO_${var} 1\n")
+ ENDIF(CONFIG_H_FILE)
+ ENDIF(NOT HAVE_${var} OR NOT ${var}_USABLE)
+ENDMACRO(CHECK_INCLUDE_FILE_USABILITY_H filename var)
+
+MACRO(CHECK_INCLUDE_FILE_CXX_H filename var)
+ CHECK_INCLUDE_FILE_CXX(${filename} ${var})
+ if(CONFIG_H_FILE AND ${var})
+ FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine ${var} 1\n")
+ endif(CONFIG_H_FILE AND ${var})
+ENDMACRO(CHECK_INCLUDE_FILE_CXX_H)
+
+MACRO(CHECK_TYPE_SIZE_H typename var)
+ FOREACH(arg ${ARGN})
+ SET(headers ${headers} ${arg})
+ ENDFOREACH(arg ${ARGN})
+ SET(CHECK_EXTRA_INCLUDE_FILES ${headers})
+ CHECK_TYPE_SIZE(${typename} HAVE_${var}_T)
+ SET(CHECK_EXTRA_INCLUDE_FILES)
+ if(CONFIG_H_FILE AND HAVE_${var}_T)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_${var}_T 1\n")
+ FILE(APPEND ${CONFIG_H_FILE} "#define SIZEOF_${var}
${HAVE_${var}_T}\n")
+ endif(CONFIG_H_FILE AND HAVE_${var}_T)
+ENDMACRO(CHECK_TYPE_SIZE_H)
+
+MACRO(CHECK_STRUCT_HAS_MEMBER_H structname member header var)
+ CHECK_STRUCT_HAS_MEMBER(${structname} ${member} ${header} HAVE_${var})
+ if(CONFIG_H_FILE AND HAVE_${var})
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_${var} 1\n")
+ endif(CONFIG_H_FILE AND HAVE_${var})
+ENDMACRO(CHECK_STRUCT_HAS_MEMBER_H)
+
+MACRO(CHECK_LIBRARY targetname lname func)
+ IF(NOT ${targetname}_LIBRARY)
+ CHECK_LIBRARY_EXISTS(${lname} ${func} ""
HAVE_${targetname}_${lname})
+ IF(HAVE_${targetname}_${lname})
+ RESOLVE_LIBRARIES (${targetname}_LIBRARY "-l${lname}")
+ SET(${targetname}_LINKOPT "-l${lname}")
+ ENDIF(HAVE_${targetname}_${lname})
+ ENDIF(NOT ${targetname}_LIBRARY)
+ENDMACRO(CHECK_LIBRARY lname func)
+
+# Functionality testing macros - these also assume a CONFIG_H file. In some
+# cases the minimal test code can be included in-line, but in others the
problem
+# of quoting it correctly becomes rather involved. In those cases, rather than
+# complicate the maintainance of the test, the code itself is stored in a file.
+# These files need to be present in a directory called test_sources, in one of
+# the directories in the CMAKE_MODULE_PATH variable. The first step is to
+# locate such a directory.
+
+SET(CMAKE_TEST_SRCS_DIR "NOTFOUND")
+FOREACH($candidate_dir ${CMAKE_MODULE_PATH})
+ IF(NOT CMAKE_TEST_SRCS_DIR)
+ IF(EXISTS "${candidate_dir}/test_sources" AND IS_DIRECTORY
"${candidate_dir}/test_sources")
+ SET(CMAKE_TEST_SRCS_DIR ${candidate_dir}/test_sources)
+ ENDIF(EXISTS "${candidate_dir}/test_sources" AND IS_DIRECTORY
"${candidate_dir}/test_sources")
+ ENDIF(NOT CMAKE_TEST_SRCS_DIR)
+ENDFOREACH($candidate_dir ${CMAKE_MODULE_PATH})
+
+INCLUDE(CheckPrototypeExists)
+INCLUDE(CheckCSourceRuns)
+INCLUDE(CheckCFileRuns)
+
+MACRO(CHECK_BASENAME)
+ SET(BASENAME_SRC "
+ #include <libgen.h>
+ int main(int argc, char *argv[]) {
+ (void)basename(argv[0]);
+ return 0;
+ }")
+ CHECK_C_SOURCE_RUNS("${BASENAME_SRC}" HAVE_BASENAME)
+ IF(HAVE_BASENAME)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_BASENAME 1\n")
+ ENDIF(HAVE_BASENAME)
+ENDMACRO(CHECK_BASENAME var)
+
+MACRO(CHECK_DIRNAME)
+ SET(DIRNAME_SRC "
+ #include <libgen.h>
+ int main(int argc, char *argv[]) {
+ (void)dirname(argv[0]);
+ return 0;
+ }")
+ CHECK_C_SOURCE_RUNS("${DIRNAME_SRC}" HAVE_DIRNAME)
+ IF(HAVE_DIRNAME)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_DIRNAME 1\n")
+ ENDIF(HAVE_DIRNAME)
+ENDMACRO(CHECK_DIRNAME var)
+
+# Based on AC_HEADER_STDC - using the source code for ctype
+# checking found in the generated configure file
+MACRO(CMAKE_HEADER_STDC)
+ CHECK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
+ FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_STDLIB_H 1\n")
+ CHECK_INCLUDE_FILE(stdarg.h HAVE_STDARG_H)
+ CHECK_INCLUDE_FILE(string.h HAVE_STRING_H)
+ FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_STRING_H 1\n")
+ CHECK_INCLUDE_FILE(strings.h HAVE_STRINGS_H)
+ FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_STRINGS_H 1\n")
+ CHECK_INCLUDE_FILE(float.h HAVE_FLOAT_H)
+ CHECK_PROTOTYPE_EXISTS(memchr string.h HAVE_STRING_H_MEMCHR)
+ CHECK_PROTOTYPE_EXISTS(free stdlib.h HAVE_STDLIB_H_FREE)
+ CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/ctypes_test.c WORKING_CTYPE_MACROS)
+ IF(HAVE_STDLIB_H AND HAVE_STDARG_H AND HAVE_STRING_H AND HAVE_FLOAT_H AND
WORKING_CTYPE_MACROS)
+ FILE(APPEND ${CONFIG_H_FILE} "#define STDC_HEADERS 1\n")
+ ENDIF(HAVE_STDLIB_H AND HAVE_STDARG_H AND HAVE_STRING_H AND HAVE_FLOAT_H AND
WORKING_CTYPE_MACROS)
+ENDMACRO(CMAKE_HEADER_STDC)
+
+# Based on AC_HEADER_SYS_WAIT
+MACRO(CMAKE_HEADER_SYS_WAIT)
+ CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/sys_wait_test.c WORKING_SYS_WAIT)
+ IF(WORKING_SYS_WAIT)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_SYS_WAIT_H 1\n")
+ ENDIF(WORKING_SYS_WAIT)
+ENDMACRO(CMAKE_HEADER_SYS_WAIT)
+
+# Based on AC_FUNC_ALLOCA
+MACRO(CMAKE_ALLOCA)
+ CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/alloca_header_test.c
WORKING_ALLOCA_H)
+ IF(WORKING_ALLOCA_H)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_ALLOCA_H 1\n")
+ SET(FILE_RUN_DEFINITIONS "-DHAVE_ALLOCA_H")
+ ENDIF(WORKING_ALLOCA_H)
+ CHECK_C_FILE_RUNS(${CMAKE_TEST_SRCS_DIR}/alloca_test.c WORKING_ALLOCA)
+ IF(WORKING_ALLOCA)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_ALLOCA 1\n")
+ ENDIF(WORKING_ALLOCA)
+ENDMACRO(CMAKE_ALLOCA)
+
+MACRO(CHECK_COMPILER_SUPPORTS_HIDDEN)
+ SET(TEST_SRC"
+ #define MODULE_SCOPE extern __attribute__((__visibility__("hidden")))
+ main(){};
+ ")
+ CHECK_C_SOURCE_COMPILES("${TEST_SRC}" COMPILER_SUPPORTS_HIDDEN)
+ENDMACRO(CHECK_COMPILER_SUPPORTS_HIDDEN)
+
+MACRO(CHECK_GETADDERINFO_WORKING)
+ SET(GETADDERINFO_SRC "
+ #include <netdb.h>
+ int main () {
+ const char *name, *port;
+ struct addrinfo *aiPtr, hints;
+ (void)getaddrinfo(name,port, &hints, &aiPtr);
+ (void)freeaddrinfo(aiPtr);
+ return 0;
+ }")
+ CHECK_C_SOURCE_COMPILES("${GETADDERINFO_SRC}" WORKING_GETADDERINFO)
+ IF(WORKING_GETADDERINFO)
+ FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_GETADDERINFO 1\n")
+ ENDIF(WORKING_GETADDERINFO)
+ENDMACRO(CHECK_GETADDERINFO_WORKING)
+
+
+MACRO(TERMIOS_TERMIO_SGTTY)
+ SET(TERMIOS_SRC "
+ #include <termios.h>
+ int main() {
+ struct termios t;
+ if (tcgetattr(0, &t) == 0) {
+ cfsetospeed(&t, 0);
+ t.c_cflag |= PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+ }
+ ")
+ SET(TERMIO_SRC "
+ #include <termio.h>
+ int main() {
+ struct termio t;
+ if (ioctl(0, TCGETA, &t) == 0) {
+ t.c_cflag |= CBAUD | PARENB | PARODD | CSIZE | CSTOPB;
+ return 0;
+ }
+ return 1;
+ }
+ ")
+ SET(SGTTY_SRC "
+ #include <sgtty.h>
+ int main() {
+ struct sgttyb t;
+ if (ioctl(0, TIOCGETP, &t) == 0) {
+ t.sg_ospeed = 0;
+ t.sg_flags |= ODDP | EVENP | RAW;
+ return 0;
+ }
+ return 1;
+ }
+ ")
+ CHECK_C_SOURCE_RUNS("${TERMIOS_SRC}" HAVE_TERMIOS)
+ IF(NOT HAVE_TERMIOS)
+ CHECK_C_SOURCE_RUNS("${TERMIO_SRC}" HAVE_TERMIO)
+ ENDIF(NOT HAVE_TERMIOS)
+ IF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
+ CHECK_C_SOURCE_RUNS("${SGTTY_SRC}" HAVE_SGTTY)
+ ENDIF(NOT HAVE_TERMIO AND NOT HAVE_TERMIOS)
+ENDMACRO(TERMIOS_TERMIO_SGTTY)
+
+MACRO(CHECK_FD_SET_IN_TYPES_H)
+ SET(TEST_SRC "
+ #include <sys/types.h>
+ int main ()
+ {
+ fd_set readMask, writeMask;
+ return 0;
+ }
+ ")
+ CHECK_C_SOURCE_COMPILES("${TEST_SRC}" FD_SET_IN_TYPES_H)
+ENDMACRO(CHECK_FD_SET_IN_TYPES_H)
+
+MACRO(CHECK_TIME_AND_SYS_TIME)
+ SET(TEST_SRC "
+ #include <sys/types.h>
+ #include <sys/time.h>
+ #include <time.h>
+ int main() {
+ if ((struct tm *) 0)
+ return 0;
+ return 0;
+ }
+ ")
+ CHECK_C_SOURCE_COMPILES("${TEST_SRC}" TIME_AND_SYS_TIME)
+ENDMACRO(CHECK_TIME_AND_SYS_TIME)
+
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/CheckSystemFunctionality.cmake
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/ResolveCompilerPaths.cmake
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/ResolveCompilerPaths.cmake
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/ResolveCompilerPaths.cmake
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,129 @@
+#=============================================================================
+# Copyright 2008 Jed Brown
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# * Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# * Neither the names of Kitware, Inc., the Insight Software Consortium,
+# Jed Brown, nor the names of their contributors may be used to endorse
+# or promote products derived from this software without specific prior
+# written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# (Added license text after confirming with Jed Brown via email license
+# on his modules was the same as that of CMake - CY)
+#
+#=============================================================================
+# ResolveCompilerPaths - this module defines two macros
+#
+# RESOLVE_LIBRARIES (XXX_LIBRARIES LINK_LINE)
+# This macro is intended to be used by FindXXX.cmake modules.
+# It parses a compiler link line and resolves all libraries
+# (-lfoo) using the library path contexts (-L/path) in scope.
+# The result in XXX_LIBRARIES is the list of fully resolved libs.
+# Example:
+#
+# RESOLVE_LIBRARIES (FOO_LIBRARIES "-L/A -la -L/B -lb -lc -ld")
+#
+# will be resolved to
+#
+# FOO_LIBRARIES:STRING="/A/liba.so;/B/libb.so;/A/libc.so;/usr/lib/libd.so"
+#
+# if the filesystem looks like
+#
+# /A: liba.so libc.so
+# /B: liba.so libb.so
+# /usr/lib: liba.so libb.so libc.so libd.so
+#
+# and /usr/lib is a system directory.
+#
+# Note: If RESOLVE_LIBRARIES() resolves a link line differently from
+# the native linker, there is a bug in this macro (please report it).
+#
+# RESOLVE_INCLUDES (XXX_INCLUDES INCLUDE_LINE)
+# This macro is intended to be used by FindXXX.cmake modules.
+# It parses a compile line and resolves all includes
+# (-I/path/to/include) to a list of directories. Other flags are ignored.
+# Example:
+#
+# RESOLVE_INCLUDES (FOO_INCLUDES "-I/A -DBAR='\"irrelevant -I/string
here\"' -I/B")
+#
+# will be resolved to
+#
+# FOO_INCLUDES:STRING="/A;/B"
+#
+# assuming both directories exist.
+# Note: as currently implemented, the -I/string will be picked up mistakenly
(cry, cry)
+
+macro (RESOLVE_LIBRARIES LIBS LINK_LINE)
+ string (REGEX MATCHALL "((-L|-l|-Wl)([^\" ]+|\"[^\"]+\")|/[^\"
]+(a|so|dll))" _all_tokens "${LINK_LINE}")
+ set (_libs_found)
+ set (_directory_list)
+ foreach (token ${_all_tokens})
+ if (token MATCHES "-L([^\" ]+|\"[^\"]+\")")
+ # If it's a library path, add it to the list
+ string (REGEX REPLACE "^-L" "" token ${token})
+ string (REGEX REPLACE "//" "/" token ${token})
+ list (APPEND _directory_list ${token})
+ elseif (token MATCHES "^(-l([^\" ]+|\"[^\"]+\")|/[^\" ]+(a|so|dll))")
+ # It's a library, resolve the path by looking in the list and then (by
default) in system directories
+ string (REGEX REPLACE "^-l" "" token ${token})
+ set (_root)
+ if (token MATCHES "^/") # We have an absolute path, add root to the
search path
+ set (_root "/")
+ endif (token MATCHES "^/")
+ set (_lib "NOTFOUND" CACHE FILEPATH "Cleared" FORCE)
+ find_library (_lib ${token} HINTS ${_directory_list} ${_root})
+ if (_lib)
+ string (REPLACE "//" "/" _lib ${_lib})
+ list (APPEND _libs_found ${_lib})
+ else (_lib)
+ message (STATUS "Unable to find library ${token}")
+ endif (_lib)
+ endif (token MATCHES "-L([^\" ]+|\"[^\"]+\")")
+ endforeach (token)
+ set (_lib "NOTFOUND" CACHE INTERNAL "Scratch variable" FORCE)
+ # only the LAST occurence of each library is required since there should be
no circular dependencies
+ if (_libs_found)
+ list (REVERSE _libs_found)
+ list (REMOVE_DUPLICATES _libs_found)
+ list (REVERSE _libs_found)
+ endif (_libs_found)
+ set (${LIBS} "${_libs_found}")
+endmacro (RESOLVE_LIBRARIES)
+
+macro (RESOLVE_INCLUDES INCS COMPILE_LINE)
+ string (REGEX MATCHALL "-I([^\" ]+|\"[^\"]+\")" _all_tokens
"${COMPILE_LINE}")
+ set (_incs_found)
+ foreach (token ${_all_tokens})
+ string (REGEX REPLACE "^-I" "" token ${token})
+ string (REGEX REPLACE "//" "/" token ${token})
+ if (EXISTS ${token})
+ list (APPEND _incs_found ${token})
+ else (EXISTS ${token})
+ message (STATUS "Include directory ${token} does not exist")
+ endif (EXISTS ${token})
+ endforeach (token)
+ list (REMOVE_DUPLICATES _incs_found)
+ set (${INCS} "${_incs_found}")
+endmacro (RESOLVE_INCLUDES)
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/ResolveCompilerPaths.cmake
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_header_test.c
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_header_test.c
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_header_test.c
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,10 @@
+#include <alloca.h>
+int
+main ()
+{
+ char *p = (char *) alloca (2 * sizeof (int));
+ if (p) return 0;
+ ;
+ return 0;
+}
+
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_header_test.c
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_test.c
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_test.c
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_test.c
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,30 @@
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int
+main ()
+{
+ char *p = (char *) alloca (1);
+ if (p) return 0;
+ ;
+ return 0;
+}
+
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/alloca_test.c
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/ctypes_test.c
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/ctypes_test.c
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/ctypes_test.c
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,24 @@
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/ctypes_test.c
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/sys_wait_test.c
===================================================================
---
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/sys_wait_test.c
(rev 0)
+++
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/sys_wait_test.c
2010-10-25 19:16:36 UTC (rev 41136)
@@ -0,0 +1,19 @@
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+
+int
+main ()
+{
+ int s;
+ wait (&s);
+ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+ ;
+ return 0;
+}
+
Property changes on:
brlcad/branches/cmake/src/other/incrTcl/itk/CMake/test_sources/sys_wait_test.c
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Added: brlcad/branches/cmake/src/other/incrTcl/itk/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/incrTcl/itk/CMakeLists.txt
(rev 0)
+++ brlcad/branches/cmake/src/other/incrTcl/itk/CMakeLists.txt 2010-10-25
19:16:36 UTC (rev 41136)
@@ -0,0 +1,362 @@
+# C M A K E L I S T S . T X T
+# SCL
+#
+# Copyright (c) 2010 United States Government as represented by
+# the U.S. Army Research Laboratory.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# 2. Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# 3. The name of the author may not be used to endorse or promote
+# products derived from this software without specific prior written
+# permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
+# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# *******************************************************************
+# *** Tcl CMakeLists.txt ***
+# *******************************************************************
+
+# Minimum required version of CMake
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+IF(COMMAND CMAKE_POLICY)
+ CMAKE_POLICY(SET CMP0003 NEW)
+ENDIF(COMMAND CMAKE_POLICY)
+
+# set CMake project name
+PROJECT(ITK)
+
+# build shared libs by default
+OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON)
+
+# build static libs by default
+OPTION(BUILD_STATIC_LIBS "Build static libraries" ON)
+
+# version numbers
+SET(ITK_MAJOR_VERSION 8)
+SET(ITK_MINOR_VERSION 5)
+SET(ITK_PATCH_LEVEL 9)
+
+SET(ITK_VERSION "${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION}.${ITK_PATCH_LEVEL}")
+
+#-----------------------------------------------------------------------------
+# Output directories.
+IF(NOT LIBRARY_OUTPUT_PATH)
+ SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE INTERNAL "Single
output directory for building all libraries.")
+ENDIF(NOT LIBRARY_OUTPUT_PATH)
+IF(NOT EXECUTABLE_OUTPUT_PATH)
+ SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Single
output directory for building all executables.")
+ENDIF(NOT EXECUTABLE_OUTPUT_PATH)
+
+#-----------------------------------------------------------------------------
+# Configure install locations.
+
+IF(NOT CMAKE_INSTALL_PREFIX)
+ IF(WIN32)
+ SET(CMAKE_INSTALL_PREFIX "/usr/local")
+ ELSE(WIN32)
+ SET(CMAKE_INSTALL_PREFIX "C:/Tcl")
+ ENDIF(WIN32)
+ENDIF(NOT CMAKE_INSTALL_PREFIX)
+
+
+#-----------------------------------------------------------------------------
+# Check if the compiler supports pipe - if so, use it
+INCLUDE(CheckCCompilerFlag)
+CHECK_C_COMPILER_FLAG(-pipe PIPE_COMPILER_FLAG)
+IF(PIPE_COMPILER_FLAG)
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pipe")
+ENDIF(PIPE_COMPILER_FLAG)
+
+#-----------------------------------------------------------------------------
+# Set CMake module path
+SET(CMAKE_MODULE_PATH "${TCL_SOURCE_DIR}/CMake;${CMAKE_MODULE_PATH}")
+
+#-----------------------------------------------------------------------------
+# Unlike the autotools based builds, CMake will always use itkConfig.h
+
+add_definitions(
+ -DHAVE_ITK_CONFIG_H
+)
+
+# We will need a tclConfig.h.in file to hold all the #cmakedefine statements,
+# which will in turn be used to generate a tclConfig.h file. To succeed, the
+# file must first be present, which we take care of here:
+
+SET(CONFIG_H_FILE "${CMAKE_BINARY_DIR}/include/itkConfig.h.in")
+FILE(WRITE ${CONFIG_H_FILE} "/**** itk define statements from CMake ****/\n")
+FILE(APPEND ${CONFIG_H_FILE} "#ifndef _ITKCONFIG\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define _ITKCONFIG\n")
+
+INCLUDE(${ITK_SOURCE_DIR}/CMake/CheckSystemFunctionality.cmake)
+
+#----------------------------------------------------------------------------
+# First, get some standard options out of the way - things that are constant
+# between various platforms or pertain to specific OS definitions
+FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_NAME \"Itk\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_TARNAME \"Itk\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_VERSION
\"${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION}\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_STRING \"Itk
${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION}\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define PACKAGE_BUGREPORT \"\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define STDC_HEADERS 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define ITK_LIBRARY
\"${CMAKE_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}itk${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#define USE_TCL_STUBS 1\n")
+
+#----------------------------------------------------------------------------
+# Define a number of variables to be controlled by options
+OPTION(TCL_THREADS "Enable Tcl Thread support" ON)
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_THREADS 1\n")
+IF(TCL_THREADS)
+ FILE(APPEND ${CONFIG_H_FILE} "#define USE_THREAD_ALLOC 1\n")
+ FILE(APPEND ${CONFIG_H_FILE} "#define _REENTRANT 1\n")
+ FILE(APPEND ${CONFIG_H_FILE} "#define _THREAD_SAFE 1\n")
+ IF(${CMAKE_SYSTEM_NAME} MATCHES "^SunOS$")
+ FILE(APPEND ${CONFIG_H_FILE} "#define _POSIX_PTHREAD_SEMANTICS
1\n")
+ ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "^SunOS$")
+ENDIF(TCL_THREADS)
+
+#----------------------------------------------------------------------------
+# Run tests for system headers and functionality
+CHECK_INCLUDE_FILE_H(sys/types.h HAVE_SYS_TYPES_H)
+CHECK_INCLUDE_FILE_H(sys/stat.h HAVE_SYS_STAT_H)
+CHECK_INCLUDE_FILE_H(sys/fstatfs.h HAVE_SYS_FSTATFS_H)
+IF(NOT HAVE_SYS_FSTATFS_H)
+ FILE(APPEND ${CONFIG_H_FILE} "#define NO_FSTATFS 1\n")
+ENDIF(NOT HAVE_SYS_FSTATFS_H)
+CHECK_INCLUDE_FILE_H(stdlib.h HAVE_STDLIB_H)
+CHECK_INCLUDE_FILE_H(string.h HAVE_STRING_H)
+CHECK_INCLUDE_FILE_H(memory.h HAVE_MEMORY_H)
+CHECK_INCLUDE_FILE_H(strings.h HAVE_STRINGS_H)
+CHECK_INCLUDE_FILE_H(inttypes.h HAVE_INTTYPES_H)
+CHECK_INCLUDE_FILE_H(stdint.h HAVE_STDINT_H)
+CHECK_INCLUDE_FILE_H(unistd.h HAVE_UNISTD_H)
+
+CHECK_INCLUDE_FILE_H(dirent.h HAVE_DIRENT_H)
+IF(NOT HAVE_DIRENT_H)
+ FILE(APPEND ${CONFIG_H_FILE} "#define NO_DIRENT_H 1\n")
+ENDIF(NOT HAVE_DIRENT_H)
+
+CHECK_INCLUDE_FILE_USABILITY_H(float.h FLOAT_H)
+CHECK_INCLUDE_FILE_USABILITY_H(values.h VALUES_H)
+CHECK_INCLUDE_FILE_USABILITY_H(limits.h LIMITS_H)
+CHECK_INCLUDE_FILE_USABILITY_H(sys/wait.h SYS_WAIT_H)
+CHECK_INCLUDE_FILE_USABILITY_H(dlfcn.h DLFCN_H)
+CHECK_INCLUDE_FILE_USABILITY_H(sys/param.h SYS_PARAM_H)
+
+
+CHECK_LIBRARY(M m sin)
+CHECK_LIBRARY(IEEE ieee main)
+CHECK_LIBRARY(INET inet main)
+
+CHECK_INCLUDE_FILE_USABILITY_H(net/errno.h NET_ERRNO_H)
+
+CHECK_FUNCTION_EXISTS(connect HAVE_CONNECT)
+CHECK_FUNCTION_EXISTS(gethostbyname HAVE_GETHOSTBYNAME)
+IF(NOT HAVE_GETHOSTBYNAME)
+ CHECK_LIBRARY(GHBN lnsl gethostbyname)
+ SET(HAVE_GETHOSTBYNAME ${GHBN})
+ENDIF(NOT HAVE_GETHOSTBYNAME)
+
+CHECK_COMPILER_SUPPORTS_HIDDEN()
+
+CHECK_LIBRARY(DL dl dlopen)
+
+CHECK_FUNCTION_EXISTS_H(getcwd HAVE_GETCWD)
+CHECK_FUNCTION_EXISTS_H(opendir HAVE_OPENDIR)
+CHECK_FUNCTION_EXISTS_H(strtol HAVE_STRTOL)
+CHECK_FUNCTION_EXISTS_H(waitpid HAVE_WAITPID)
+CHECK_FUNCTION_EXISTS_H(strerror HAVE_STRERROR)
+CHECK_FUNCTION_EXISTS_H(getwd HAVE_GETWD)
+CHECK_FUNCTION_EXISTS_H(wait3 HAVE_WAIT3)
+CHECK_FUNCTION_EXISTS_H(uname HAVE_UNAME)
+CHECK_FUNCTION_EXISTS_H(realpath HAVE_REALPATH)
+CHECK_FUNCTION_EXISTS(getaddrinfo HAVE_GETADDRINFO)
+IF(HAVE_GETADDRINFO)
+ CHECK_GETADDERINFO_WORKING()
+ENDIF(HAVE_GETADDRINFO)
+
+
+CHECK_INCLUDE_FILE_USABILITY_H(sys/modem.h SYS_MODEM_H)
+
+TERMIOS_TERMIO_SGTTY()
+
+CHECK_FD_SET_IN_TYPES_H()
+
+CHECK_INCLUDE_FILE_USABILITY_H(sys/time.h HAVE_SYS_TIME_H)
+CHECK_TIME_AND_SYS_TIME()
+
+CHECK_FUNCTION_EXISTS_H(gmtime_r HAVE_GMTIME_R)
+CHECK_FUNCTION_EXISTS_H(localtime_r HAVE_LOCALTIME_R)
+CHECK_FUNCTION_EXISTS_H(mktime HAVE_MKTIME)
+
+CHECK_STRUCT_HAS_MEMBER_H("struct tm" tm_tzadj time.h HAVE_TM_TZADJ)
+CHECK_STRUCT_HAS_MEMBER_H("struct tm" tm_gmtoff time.h HAVE_TM_GMTOFF)
+
+CHECK_INCLUDE_FILE_H(copyfile.h HAVE_COPYFILE_H)
+CHECK_FUNCTION_EXISTS_H(copyfile HAVE_COPYFILE)
+
+CHECK_INCLUDE_FILE_H(sys/ioctl.h HAVE_SYS_IOCTL_H)
+CHECK_INCLUDE_FILE_H(sys/filio.h HAVE_SYS_FILIO_H)
+
+
+
+#CHECK_FUNCTION_EXISTS_H( HAVE_GETPWUID_R_5)
+CHECK_FUNCTION_EXISTS_H(getpwuid HAVE_GETPWUID_R)
+#CHECK_FUNCTION_EXISTS_H( HAVE_GETPWNAM_R_5)
+CHECK_FUNCTION_EXISTS_H(getpwnam HAVE_GETPWNAM_R)
+#CHECK_FUNCTION_EXISTS_H( HAVE_GETGRGID_R_5)
+CHECK_FUNCTION_EXISTS_H(getgrgid HAVE_GETGRGID_R)
+#CHECK_FUNCTION_EXISTS_H( HAVE_GETGRNAM_R_5)
+CHECK_FUNCTION_EXISTS_H(getgrnam HAVE_GETGRNAM_R)
+#CHECK_FUNCTION_EXISTS_H( HAVE_MTSAFE_GETHOSTBYNAME)
+#CHECK_FUNCTION_EXISTS_H( HAVE_MTSAFE_GETHOSTBYADDR)
+#CHECK_FUNCTION_EXISTS_H( HAVE_STRUCT_STAT_ST_BLOCKS)
+#CHECK_FUNCTION_EXISTS_H( HAVE_STRUCT_STAT_ST_BLKSIZE)
+CHECK_TYPE_SIZE_H(blkcnt_t HAVE_BLKCNT_T)
+CHECK_TYPE_SIZE_H(intptr_t HAVE_INTPTR_T)
+CHECK_TYPE_SIZE_H(uintptr_t HAVE_UINTPTR_T)
+#CHECK_TYPE_SIZE_H( HAVE_SIGNED_CHAR)
+#CHECK_TYPE_SIZE_H( HAVE_LANGINFO)
+#CHECK_TYPE_SIZE_H( HAVE_CHFLAGS)
+CHECK_FUNCTION_EXISTS_H(getattrlist HAVE_GETATTRLIST)
+CHECK_INCLUDE_FILE_H(libkern/OSAtomic.h HAVE_LIBKERN_OSATOMIC_H)
+CHECK_FUNCTION_EXISTS_H(OSSpinLockLock HAVE_OSSPINLOCKLOCK)
+CHECK_FUNCTION_EXISTS_H(pthread_atfork HAVE_PTHREAD_ATFORK)
+#CHECK_INCLUDE_FILE_H( USE_VFORK)
+#CHECK_INCLUDE_FILE_H( TCL_WIDE_INT_TYPE long\ long\n")
+#CHECK_INCLUDE_FILE_H( TCL_CFG_DEBUG)
+#CHECK_INCLUDE_FILE_H( USE_TERMIOS)
+#CHECK_INCLUDE_FILE_H( TIME_WITH_SYS_TIME)
+#CHECK_INCLUDE_FILE_H( HAVE_TM_GMTOFF)
+#CHECK_INCLUDE_FILE_H( HAVE_TIMEZONE_VAR)
+#CHECK_INCLUDE_FILE_H( HAVE_STRUCT_STAT64)
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine M_PREC 4\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_DEFAULT_ENCODING \"utf-8\"\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_LOAD_FROM_MEMORY 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_WIDE_CLICKS 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_AVAILABILITYMACROS_H 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_WEAK_IMPORT 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine _DARWIN_C_SOURCE 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine HAVE_FTS 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine TCL_UNLOAD_DLLS 1\n")
+FILE(APPEND ${CONFIG_H_FILE} "#cmakedefine USE_DTRACE 1\n")
+
+FIND_PACKAGE(Threads)
+
+# Now that all the tests are done, configure the itkConfig.h file:
+FILE(APPEND ${CONFIG_H_FILE} "#endif /*_ITKCONFIG*/\n")
+configure_file(${CONFIG_H_FILE} ${ITK_BINARY_DIR}/include/itkConfig.h)
+
+SET(ITK_GENERIC_SRCS
+ generic/itkStubInit.c
+ generic/itkStubLib.c
+ generic/itk_archetype.c
+ generic/itk_cmds.c
+ generic/itk_option.c
+ generic/itk_util.c
+)
+
+SET(ITK_STUB_SRCS
+ generic/itkStubLib.c
+)
+
+# When it comes to identification of the location of the Tcl
+# sources, the convention is as follows:
+#
+# 1. If TCL_INCLUDE_PATH is defined, use it
+# 2. Else, if TCL_PREFIX is defined build include paths from it
+# 3. If TCL_INCLUDE_PATH is not defined and TCL_BIN_PREFIX is,
+# add include directories based on the presumption of the
+# binary build dir (and hence tclConfig.h) being in a non-src
+# location.
+#
+# It's still possible, depending on how Tcl was built, to
+# have a situation where TCL_INCLUDE_PATH has to be augmented
+# manually. However, the logic below should cover the most common cases.
+
+IF(NOT TCL_INCLUDE_PATH)
+ IF(TCL_PREFIX)
+ SET(TCL_INCLUDE_PATH ${TCL_PREFIX}/generic
${TCL_PREFIX}/libtommath)
+ IF(WIN32)
+ SET(TCL_INCLUDE_PATH ${TCL_INCLUDE_PATH}
${TCL_PREFIX}/win)
+ ELSE(WIN32)
+ SET(TCL_INCLUDE_PATH ${TCL_INCLUDE_PATH}
${TCL_PREFIX}/unix)
+ ENDIF(WIN32)
+ ENDIF(TCL_PREFIX)
+ IF(TCL_BIN_PREFIX)
+ SET(TCL_INCLUDE_PATH ${TCL_INCLUDE_PATH}
${TCL_BIN_PREFIX}/include)
+ ENDIF(TCL_BIN_PREFIX)
+ENDIF(NOT TCL_INCLUDE_PATH)
+
+IF(NOT ITCL_INCLUDE_PATH)
+ IF(ITCL_PREFIX)
+ SET(ITCL_INCLUDE_PATH ${ITCL_PREFIX}/generic
${ITCL_PREFIX}/libtommath)
+ IF(WIN32)
+ SET(ITCL_INCLUDE_PATH ${ITCL_INCLUDE_PATH}
${ITCL_PREFIX}/win)
+ ELSE(WIN32)
+ SET(ITCL_INCLUDE_PATH ${ITCL_INCLUDE_PATH}
${ITCL_PREFIX}/unix)
+ ENDIF(WIN32)
+ ENDIF(ITCL_PREFIX)
+ IF(ITCL_BIN_PREFIX)
+ SET(ITCL_INCLUDE_PATH ${ITCL_INCLUDE_PATH}
${ITCL_BIN_PREFIX}/include)
+ ENDIF(ITCL_BIN_PREFIX)
+ENDIF(NOT ITCL_INCLUDE_PATH)
+
+IF(NOT TK_INCLUDE_PATH)
+ IF(TK_PREFIX)
+ SET(TK_INCLUDE_PATH ${TK_PREFIX}/generic
${TK_PREFIX}/libtommath)
+ IF(WIN32)
+ SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_PREFIX}/win)
+ ELSE(WIN32)
+ SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH}
${TK_PREFIX}/unix)
+ ENDIF(WIN32)
+ ENDIF(TK_PREFIX)
+ IF(TK_BIN_PREFIX)
+ SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_BIN_PREFIX}/include)
+ ENDIF(TK_BIN_PREFIX)
+ENDIF(NOT TK_INCLUDE_PATH)
+
+
+SET(ITK_INCLUDE_PATH ${ITK_SOURCE_DIR}/generic ${ITK_BINARY_DIR}/include)
+
+include_directories(
+ ${TCL_INCLUDE_PATH}
+ ${TK_INCLUDE_PATH}
+ ${ITCL_INCLUDE_PATH}
+ ${ITK_INCLUDE_PATH}
+)
+
+add_library(itk ${ITK_GENERIC_SRCS})
+target_link_libraries(itk ${M_LIBRARY} ${TCL_LIBRARY} ${TK_LIBRARY}
${ITCL_LIBRARY})
+install(TARGETS itk DESTINATION
lib/Itk${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION})
+
+FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl "package ifneeded Itk
${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION} [list load [file join $dir
libitk${CMAKE_SHARED_LIBRARY_SUFFIX}] Itk]")
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgIndex.tcl DESTINATION
lib/Itk${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION})
+
+SET(ITK_LIBRARY_FILES
+ library/Archetype.itk
+ library/Toplevel.itk
+ library/Widget.itk
+ library/itk.tcl
+ library/tclIndex
+)
+install(FILES ${ITK_LIBRARY_FILES} DESTINATION
lib/Itk${ITK_MAJOR_VERSION}.${ITK_MINOR_VERSION})
Property changes on: brlcad/branches/cmake/src/other/incrTcl/itk/CMakeLists.txt
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:eol-style
+ native
Modified: brlcad/branches/cmake/src/other/tcl/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/tcl/CMakeLists.txt 2010-10-25 17:30:00 UTC
(rev 41135)
+++ brlcad/branches/cmake/src/other/tcl/CMakeLists.txt 2010-10-25 19:16:36 UTC
(rev 41136)
@@ -538,3 +538,5 @@
target_link_libraries(tclsh tcl)
install(TARGETS tclsh DESTINATION bin)
SET(TCL_TCLSH tclsh)
+
+install(FILES library/init.tcl DESTINATION
lib/tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION})
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits