Revision: 41120
http://brlcad.svn.sourceforge.net/brlcad/?rev=41120&view=rev
Author: starseeker
Date: 2010-10-21 17:35:02 +0000 (Thu, 21 Oct 2010)
Log Message:
-----------
Generalize the tcl/tk logic a bit, and try hooking it up to src/other. It's
not functional yet, and won't be without a fair number of tests being
implemented to define variables correctly, but techniques developed for BRL-CAD
are mapping to that problem fairly well.
Modified Paths:
--------------
brlcad/branches/cmake/src/other/CMakeLists.txt
brlcad/branches/cmake/src/other/tcl/CMakeLists.txt
brlcad/branches/cmake/src/other/tk/CMakeLists.txt
Modified: brlcad/branches/cmake/src/other/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/CMakeLists.txt 2010-10-21 05:51:39 UTC
(rev 41119)
+++ brlcad/branches/cmake/src/other/CMakeLists.txt 2010-10-21 17:35:02 UTC
(rev 41120)
@@ -97,36 +97,21 @@
OPTION(BRLCAD_BUILD_LOCAL_TK "Build the local versions of Tcl/Tk" ON)
SET(BRLCAD_BUILD_LOCAL_TK ON CACHE STRING "local tk build" FORCE)
ENDIF(BRLCAD-ENABLE_ALL_LOCAL_LIBS)
-IF(MSVC)
- THIRD_PARTY_NMAKE_EXTERNAL_PROJECT(TCL tcl src/other/tcl win "")
-ELSE(MSVC)
- THIRD_PARTY_AUTOCONF_EXTERNAL_PROJECT(TCL tcl src/other/tcl unix "")
-ENDIF(MSVC)
IF(BRLCAD_BUILD_LOCAL_TCL OR BRLCAD-ENABLE_ALL_LOCAL_LIBS)
- IF(MSVC)
- SET(TCL_LIBRARY "${BRLCAD_PREFIX}/lib/tcl85.lib" CACHE STRING
"TCL_LIBRARY" FORCE)
- ELSE(MSVC)
- SET(TCL_LIBRARY
"${BRLCAD_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}tcl8.5${CMAKE_SHARED_LIBRARY_SUFFIX}"
CACHE STRING "TCL_LIBRARY" FORCE)
- ENDIF(MSVC)
- SET(TCL_INCLUDE_PATH "${BRLCAD_PREFIX}/include" CACHE STRING
"TCL_INCLUDE_PATH" FORCE)
- SET(TCL_CONF_PREFIX "${BRLCAD_PREFIX}/lib" CACHE STRING
"TCL_CONF_PREFIX" FORCE)
+ ADD_SUBDIRECTORY(tcl)
+ SET(TCL_LIBRARY tcl CACHE STRING "TCL_LIBRARY" FORCE)
+ get_directory_property(TCL_INCLUDE_PATH DIRECTORY tcl DEFINITION
TCL_INCLUDE_PATH)
+ SET(TCL_INCLUDE_PATH "${TCL_INCLUDE_PATH}" CACHE STRING "Tcl include
paths" FORCE)
FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_TCL_H 1\n")
ELSE(BRLCAD_BUILD_LOCAL_TCL OR BRLCAD-ENABLE_ALL_LOCAL_LIBS)
BRLCAD_INCLUDE_FILE(tcl.h HAVE_TCL_H)
ENDIF(BRLCAD_BUILD_LOCAL_TCL OR BRLCAD-ENABLE_ALL_LOCAL_LIBS)
-IF(MSVC)
- THIRD_PARTY_NMAKE_EXTERNAL_PROJECT(TK tk src/other/tk win
"TCLDIR=${CMAKE_CURRENT_SOURCE_DIR}/tcl")
-ELSE(MSVC)
- THIRD_PARTY_AUTOCONF_EXTERNAL_PROJECT(TK tk src/other/tk unix
"--with-tcl=${TCL_CONF_PREFIX}")
-ENDIF(MSVC)
+
IF(BRLCAD_BUILD_LOCAL_TK OR BRLCAD-ENABLE_ALL_LOCAL_LIBS)
- IF(MSVC)
- SET(TK_LIBRARY "${BRLCAD_PREFIX}/lib/tk85.lib" CACHE STRING
"TK_LIBRARY" FORCE)
- ELSE(MSVC)
- SET(TK_LIBRARY
"${BRLCAD_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}tk8.5${CMAKE_SHARED_LIBRARY_SUFFIX}"
CACHE STRING "TK_LIBRARY" FORCE)
- ENDIF(MSVC)
- SET(TK_INCLUDE_PATH "${BRLCAD_PREFIX}/include" CACHE STRING
"TK_INCLUDE_PATH" FORCE)
- SET(TK_CONF_PREFIX "${BRLCAD_PREFIX}/lib" CACHE STRING "TK_CONF_PREFIX"
FORCE)
+ ADD_SUBDIRECTORY(tk)
+ SET(TK_LIBRARY tk CACHE STRING "TK_LIBRARY" FORCE)
+ get_directory_property(TK_INCLUDE_PATH DIRECTORY tk DEFINITION
TK_INCLUDE_PATH)
+ SET(TK_INCLUDE_PATH "${TK_INCLUDE_PATH}" CACHE STRING "Tk include
paths" FORCE)
FILE(APPEND ${CONFIG_H_FILE} "#define HAVE_TK_H 1\n")
ADD_DEPENDENCIES(tk tcl)
ELSE(BRLCAD_BUILD_LOCAL_TK OR BRLCAD-ENABLE_ALL_LOCAL_LIBS)
Modified: brlcad/branches/cmake/src/other/tcl/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/tcl/CMakeLists.txt 2010-10-21 05:51:39 UTC
(rev 41119)
+++ brlcad/branches/cmake/src/other/tcl/CMakeLists.txt 2010-10-21 17:35:02 UTC
(rev 41120)
@@ -168,10 +168,10 @@
TCL_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
-TCL_INCLUDE_FILE(sys/statfs.h HAVE_SYS_STAT_H)
-IF(NOT HAVE_SYS_STAT_H)
+TCL_INCLUDE_FILE(sys/statfs.h HAVE_SYS_STATFS_H)
+IF(NOT HAVE_SYS_STATFS_H)
FILE(APPEND ${CONFIG_H_FILE} "#define NO_FSTATFS 1\n")
-ENDIF(NOT HAVE_SYS_STAT_H)
+ENDIF(NOT HAVE_SYS_STATFS_H)
TCL_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
TCL_INCLUDE_FILE(string.h HAVE_STRING_H)
TCL_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
@@ -477,12 +477,25 @@
unix/tclLoadShl.c
)
-SET(TCL_SRCS ${TCL_GENERIC_SRCS} ${TCL_TOMMATH_SRCS} ${TCL_UNIX_SRCS}
${TCL_NOTIFY_SRCS} ${TCL_STUB_SRCS} unix/tclLoadDyld.c ${TCL_OSX_SRCS})
+SET(TCL_SRCS ${TCL_GENERIC_SRCS} ${TCL_TOMMATH_SRCS} ${TCL_NOTIFY_SRCS}
${TCL_STUB_SRCS})
+IF(WIN32)
+ SET(TCL_SRCS ${TCL_SRCS} ${TCL_WIN_SRCS})
+ELSE(WIN32)
+ IF(APPLE)
+ SET(TCL_SRCS ${TCL_SRCS} ${TCL_OSX_SRCS})
+ ENDIF(APPLE)
+ SET(TCL_SRCS ${TCL_SRCS} ${TCL_UNIX_SRCS} unix/tclLoadDyld.c)
+ENDIF(WIN32)
+
+SET(TCL_INCLUDE_PATH ${TCL_SOURCE_DIR}/generic ${TCL_SOURCE_DIR}/libtommath
${TCL_BINARY_DIR}/include)
+IF(WIN32)
+ SET(TCL_INCLUDE_PATH ${TCL_INCLUDE_PATH} ${TCL_SOURCE_DIR}/win)
+ELSE(WIN32)
+ SET(TCL_INCLUDE_PATH ${TCL_INCLUDE_PATH} ${TCL_SOURCE_DIR}/unix)
+ENDIF(WIN32)
+
include_directories(
- ${TCL_SOURCE_DIR}/generic
- ${TCL_SOURCE_DIR}/unix
- ${TCL_SOURCE_DIR}/libtommath
- ${TCL_BINARY_DIR}/include
+ ${TCL_INCLUDE_PATH}
)
IF(WIN32)
@@ -493,6 +506,10 @@
add_library(tcl ${TCL_SRCS})
target_link_libraries(tcl ${CMAKE_THREAD_LIBS_INIT}
${COREFOUNDATION_FRAMEWORK})
+install(TARGETS tcl DESTINATION lib)
+SET(TCL_LIBRARY tcl)
add_executable(tclsh ${TCLSH_SRCS})
target_link_libraries(tclsh tcl)
+install(TARGETS tclsh DESTINATION bin)
+SET(TCL_TCLSH tclsh)
Modified: brlcad/branches/cmake/src/other/tk/CMakeLists.txt
===================================================================
--- brlcad/branches/cmake/src/other/tk/CMakeLists.txt 2010-10-21 05:51:39 UTC
(rev 41119)
+++ brlcad/branches/cmake/src/other/tk/CMakeLists.txt 2010-10-21 17:35:02 UTC
(rev 41120)
@@ -161,10 +161,10 @@
FIND_PACKAGE(X11)
TK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
-TK_INCLUDE_FILE(sys/statfs.h HAVE_SYS_STAT_H)
-IF(NOT HAVE_SYS_STAT_H)
+TK_INCLUDE_FILE(sys/statfs.h HAVE_SYS_STATFS_H)
+IF(NOT HAVE_SYS_STATFS_H)
FILE(APPEND ${CONFIG_H_FILE} "#define NO_FSTATFS 1\n")
-ENDIF(NOT HAVE_SYS_STAT_H)
+ENDIF(NOT HAVE_SYS_STATFS_H)
TK_INCLUDE_FILE(stdlib.h HAVE_STDLIB_H)
TK_INCLUDE_FILE(string.h HAVE_STRING_H)
TK_INCLUDE_FILE(memory.h HAVE_MEMORY_H)
@@ -458,15 +458,59 @@
SET(TK_WIN_SRCS
)
-SET(TK_SRCS ${TK_GENERIC_SRCS} ${TK_X11_SRCS} ${TTK_SRCS} ${TTK_STUB_SRCS})
+SET(TK_SRCS ${TK_GENERIC_SRCS} ${TTK_SRCS} ${TTK_STUB_SRCS})
+
+IF(WIN32)
+ SET(TK_SRCS ${TK_SRCS} ${TK_WIN_SRCS})
+ELSE(WIN32)
+ IF(ENABLE_AQUA)
+ SET(TK_SRCS ${TK_SRCS} ${TK_AQUA_SRCS})
+ ELSE(ENABLE_AQUA)
+ SET(TK_SRCS ${TK_SRCS} ${TK_X11_SRCS})
+ ENDIF(ENABLE_AQUA)
+ENDIF(WIN32)
+
+# 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)
+
+SET(TK_INCLUDE_PATH ${TK_SOURCE_DIR}/generic ${TK_SOURCE_DIR}/bitmaps
${TK_BINARY_DIR}/include)
+IF(WIN32)
+ SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_SOURCE_DIR}/win)
+ELSE(WIN32)
+ SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_SOURCE_DIR}/unix)
+ IF(APPLE)
+ SET(TK_INCLUDE_PATH ${TK_INCLUDE_PATH} ${TK_SOURCE_DIR}/macosx)
+ ENDIF(APPLE)
+ENDIF(WIN32)
+
include_directories(
- ${TK_SOURCE_DIR}/../tcl/generic
- ${TK_SOURCE_DIR}/../tcl/unix
- ${TK_SOURCE_DIR}/generic
- ${TK_SOURCE_DIR}/unix
- ${TK_SOURCE_DIR}/macosx
- ${TK_SOURCE_DIR}/bitmaps
- ${TK_BINARY_DIR}/include
+ ${TCL_INCLUDE_PATH}
+ ${TK_INCLUDE_PATH}
${FREETYPE_INCLUDE_DIRS}
)
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