Revision: 77256
          http://sourceforge.net/p/brlcad/code/77256
Author:   starseeker
Date:     2020-09-28 19:03:14 +0000 (Mon, 28 Sep 2020)
Log Message:
-----------
Have to do a bit more rewriting to handle zlib naming, but the basic Tcl 
building structure put in place earlier seems to still be working (at least on 
Linux.)

Modified Paths:
--------------
    brlcad/branches/thirdparty_rework/misc/CMake/tcl_replace.cxx.in
    brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt

Added Paths:
-----------
    brlcad/branches/thirdparty_rework/src/superbuild/tcl.cmake

Modified: brlcad/branches/thirdparty_rework/misc/CMake/tcl_replace.cxx.in
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/tcl_replace.cxx.in     
2020-09-28 17:38:12 UTC (rev 77255)
+++ brlcad/branches/thirdparty_rework/misc/CMake/tcl_replace.cxx.in     
2020-09-28 19:03:14 UTC (rev 77256)
@@ -14,6 +14,8 @@
 static const char *PKG_DIR = "tcl8.@TCL_MINOR_VERSION@";
 static const char *TKTABLE_RUNTIME_DIR = "Tktable@TKTABLE_VERSION@";
 
+static const char *ZLIB_NAME = "@ZLIB_NAME@";
+static const char *DEFLATE_NAME = "@DEFLATE_NAME@";
 
 int main(int argc, const char **argv)
 {
@@ -96,6 +98,16 @@
     std::string tbl_runtimedir_new  = std::string("\"") + 
std::string(CMAKE_INSTALL_PREFIX) + std::string(sep) + std::string(LIB_DIR) + 
std::string(TKTABLE_RUNTIME_DIR) + std::string("\"");
     strings.push_back(tbl_runtimedir_new);
 
+    std::regex zname_regex("for ac_lib in z");
+    regexes.push_back(zname_regex);
+    std::string zname_new  = std::string("for ac_lib in ") + 
std::string(ZLIB_NAME);
+    strings.push_back(zname_new);
+
+    std::regex deflate_regex("deflateSetHeader");
+    regexes.push_back(deflate_regex);
+    std::string deflate_new  = std::string(DEFLATE_NAME);
+    strings.push_back(deflate_new);
+
     for (int i = 1; i < argc; i++) {
        std::string cline;
        std::string nfile_contents;

Modified: brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt     
2020-09-28 17:38:12 UTC (rev 77255)
+++ brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt     
2020-09-28 19:03:14 UTC (rev 77256)
@@ -175,6 +175,10 @@
 # GDAL -  translator library for raster and vector geospatial data formats
 include(${CMAKE_CURRENT_SOURCE_DIR}/gdal.cmake)
 
+# TCL - scripting language
+include(${CMAKE_CURRENT_SOURCE_DIR}/tcl.cmake)
+
+
 ###############################################################################
 #                    Primary BRL-CAD Compilation
 ###############################################################################
@@ -199,6 +203,7 @@
   BSON
   PROJ4
   GDAL
+  TCL
   )
 foreach(T ${TARGET_LIST})
 if (TARGET ${T}_BLD)
@@ -231,6 +236,7 @@
   -DBSON_ROOT=$<$<BOOL:${BSON_TARGET}>:${CMAKE_BINARY_DIR}>
   -DPROJ4_ROOT=$<$<BOOL:${PROJ4_TARGET}>:${CMAKE_BINARY_DIR}>
   -DGDAL_ROOT=$<$<BOOL:${GDAL_TARGET}>:${CMAKE_BINARY_DIR}>
+  -DTCL_ROOT=$<$<BOOL:${TCL_TARGET}>:${CMAKE_BINARY_DIR}>
   DEPENDS ${BRLCAD_DEPS}
   )
 

Added: brlcad/branches/thirdparty_rework/src/superbuild/tcl.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/tcl.cmake                  
        (rev 0)
+++ brlcad/branches/thirdparty_rework/src/superbuild/tcl.cmake  2020-09-28 
19:03:14 UTC (rev 77256)
@@ -0,0 +1,330 @@
+set(tcl_DESCRIPTION "
+Option for enabling and disabling compilation of the Tcl library
+provided with BRL-CAD's source code.  Default is AUTO, responsive to
+the toplevel BRLCAD_BUNDLED_LIBS option and testing first for a system
+version if BRLCAD_BUNDLED_LIBS is also AUTO.
+")
+
+THIRD_PARTY(tcl TCL tcl tcl_DESCRIPTION ALIASES ENABLE_TCL REQUIRED_VARS 
BRLCAD_LEVEL2)
+
+if (${CMAKE_PROJECT_NAME}_TCL_BUILD)
+
+  set(TCL_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/TCL_BLD-prefix/src/TCL_BLD")
+  set(TCL_MAJOR_VERSION 8)
+  set(TCL_MINOR_VERSION 6)
+
+  # In addition to the usual target dependencies, we need to adjust for the
+  # non-standard BRL-CAD zlib name, if we are using our bundled version.  Set a
+  # variable here so the tcl_replace utility will know the right value.
+  if (TARGET ZLIB_BLD)
+    set(ZLIB_TARGET ZLIB_BLD)
+    set(ZLIB_NAME z_brl)
+    set(DEFLATE_NAME brl_deflateSetHeader)
+  else (TARGET ZLIB_BLD)
+    set(ZLIB_NAME z)
+    set(DEFLATE_NAME deflateSetHeader)
+  endif (TARGET ZLIB_BLD)
+
+  # We need to set internal Tcl variables to the final install paths, not the 
intermediate install paths that
+  # Tcl's own build will think are the final paths.  Rather than attempt build 
system trickery we simply
+  # hard set the values in the source files by rewriting them.
+  configure_file(${BRLCAD_CMAKE_DIR}/tcl_replace.cxx.in 
${CMAKE_CURRENT_BINARY_DIR}/tcl_replace.cxx)
+  add_executable(tcl_replace ${CMAKE_CURRENT_BINARY_DIR}/tcl_replace.cxx)
+
+  if (NOT MSVC)
+
+    set(TCL_BASENAME libtcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION})
+    set(TCL_STUBNAME libtclstub${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION})
+
+    set(TCL_PATCH_FILES "${TCL_SRC_DIR}/unix/configure" 
"${TCL_SRC_DIR}/macosx/configure" "${TCL_SRC_DIR}/unix/tcl.m4")
+    set(TCL_REWORK_FILES ${TCL_PATCH_FILES} 
"${TCL_SRC_DIR}/unix/tclUnixInit.c" "${TCL_SRC_DIR}/generic/tclPkgConfig.c")
+
+    ExternalProject_Add(TCL_BLD
+      URL "${CMAKE_CURRENT_SOURCE_DIR}/../other/tcl"
+      BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
+      PATCH_COMMAND rpath_replace "${CMAKE_BUILD_RPATH}" ${TCL_PATCH_FILES}
+      COMMAND tcl_replace ${TCL_REWORK_FILES}
+      CONFIGURE_COMMAND CPPFLAGS=-I${CMAKE_BINARY_DIR}/${INCLUDE_DIR} 
LDFLAGS=-L${CMAKE_BINARY_DIR}/${LIB_DIR} ${TCL_SRC_DIR}/unix/configure 
--prefix=${CMAKE_BINARY_DIR}
+      BUILD_COMMAND make -j${pcnt}
+      INSTALL_COMMAND make install
+      DEPENDS ${ZLIB_TARGET} tcl_replace
+      )
+  else (NOT MSVC)
+
+    set(TCL_BASENAME tcl${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION})
+    set(TCL_STUBNAME tclstub${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION})
+
+    ExternalProject_Add(TCL_BLD
+      SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../other/tcl"
+      BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
+      CONFIGURE_COMMAND ""
+      BINARY_DIR ${TCL_SRC_DIR}/win
+      BUILD_COMMAND ${VCVARS_BAT} && nmake -f makefile.vc 
INSTALLDIR=${CMAKE_BINARY_DIR}
+      INSTALL_COMMAND ${VCVARS_BAT} && nmake -f makefile.vc install 
INSTALLDIR=${CMAKE_BINARY_DIR}
+      )
+
+  endif (NOT MSVC)
+
+  ExternalProject_Target(tcl TCL_BLD
+    OUTPUT_FILE ${TCL_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}
+    STATIC_OUTPUT_FILE ${TCL_STUBNAME}${CMAKE_STATIC_LIBRARY_SUFFIX}
+    RPATH
+    )
+
+  ExternalProject_Target(tclsh TCL_BLD
+    OUTPUT_FILE 
tclsh${TCL_MAJOR_VERSION}.${TCL_MINOR_VERSION}${CMAKE_EXECUTABLE_SUFFIX}
+    RPATH EXEC
+    )
+  ExternalProject_ByProducts(TCL_BLD ${LIB_DIR} FIXPATH
+    tclConfig.sh
+    tclooConfig.sh
+    )
+  ExternalProject_ByProducts(TCL_BLD ${LIB_DIR}/tcl8.${TCL_MINOR_VERSION}
+    auto.tcl
+    clock.tcl
+    encoding/ascii.enc
+    encoding/big5.enc
+    encoding/cp1250.enc
+    encoding/cp1251.enc
+    encoding/cp1252.enc
+    encoding/cp1253.enc
+    encoding/cp1254.enc
+    encoding/cp1255.enc
+    encoding/cp1256.enc
+    encoding/cp1257.enc
+    encoding/cp1258.enc
+    encoding/cp437.enc
+    encoding/cp737.enc
+    encoding/cp775.enc
+    encoding/cp850.enc
+    encoding/cp852.enc
+    encoding/cp855.enc
+    encoding/cp857.enc
+    encoding/cp860.enc
+    encoding/cp861.enc
+    encoding/cp862.enc
+    encoding/cp863.enc
+    encoding/cp864.enc
+    encoding/cp865.enc
+    encoding/cp866.enc
+    encoding/cp869.enc
+    encoding/cp874.enc
+    encoding/cp932.enc
+    encoding/cp936.enc
+    encoding/cp949.enc
+    encoding/cp950.enc
+    encoding/dingbats.enc
+    encoding/ebcdic.enc
+    encoding/euc-cn.enc
+    encoding/euc-jp.enc
+    encoding/euc-kr.enc
+    encoding/gb12345.enc
+    encoding/gb1988.enc
+    encoding/gb2312-raw.enc
+    encoding/gb2312.enc
+    encoding/iso2022-jp.enc
+    encoding/iso2022-kr.enc
+    encoding/iso2022.enc
+    encoding/iso8859-1.enc
+    encoding/iso8859-10.enc
+    encoding/iso8859-13.enc
+    encoding/iso8859-14.enc
+    encoding/iso8859-15.enc
+    encoding/iso8859-16.enc
+    encoding/iso8859-2.enc
+    encoding/iso8859-3.enc
+    encoding/iso8859-4.enc
+    encoding/iso8859-5.enc
+    encoding/iso8859-6.enc
+    encoding/iso8859-7.enc
+    encoding/iso8859-8.enc
+    encoding/iso8859-9.enc
+    encoding/jis0201.enc
+    encoding/jis0208.enc
+    encoding/jis0212.enc
+    encoding/koi8-r.enc
+    encoding/koi8-u.enc
+    encoding/ksc5601.enc
+    encoding/macCentEuro.enc
+    encoding/macCroatian.enc
+    encoding/macCyrillic.enc
+    encoding/macDingbats.enc
+    encoding/macGreek.enc
+    encoding/macIceland.enc
+    encoding/macJapan.enc
+    encoding/macRoman.enc
+    encoding/macRomania.enc
+    encoding/macThai.enc
+    encoding/macTurkish.enc
+    encoding/macUkraine.enc
+    encoding/shiftjis.enc
+    encoding/symbol.enc
+    encoding/tis-620.enc
+    history.tcl
+    http1.0/http.tcl
+    http1.0/pkgIndex.tcl
+    init.tcl
+    msgs/af.msg
+    msgs/af_za.msg
+    msgs/ar.msg
+    msgs/ar_in.msg
+    msgs/ar_jo.msg
+    msgs/ar_lb.msg
+    msgs/ar_sy.msg
+    msgs/be.msg
+    msgs/bg.msg
+    msgs/bn.msg
+    msgs/bn_in.msg
+    msgs/ca.msg
+    msgs/cs.msg
+    msgs/da.msg
+    msgs/de.msg
+    msgs/de_at.msg
+    msgs/de_be.msg
+    msgs/el.msg
+    msgs/en_au.msg
+    msgs/en_be.msg
+    msgs/en_bw.msg
+    msgs/en_ca.msg
+    msgs/en_gb.msg
+    msgs/en_hk.msg
+    msgs/en_ie.msg
+    msgs/en_in.msg
+    msgs/en_nz.msg
+    msgs/en_ph.msg
+    msgs/en_sg.msg
+    msgs/en_za.msg
+    msgs/en_zw.msg
+    msgs/eo.msg
+    msgs/es.msg
+    msgs/es_ar.msg
+    msgs/es_bo.msg
+    msgs/es_cl.msg
+    msgs/es_co.msg
+    msgs/es_cr.msg
+    msgs/es_do.msg
+    msgs/es_ec.msg
+    msgs/es_gt.msg
+    msgs/es_hn.msg
+    msgs/es_mx.msg
+    msgs/es_ni.msg
+    msgs/es_pa.msg
+    msgs/es_pe.msg
+    msgs/es_pr.msg
+    msgs/es_py.msg
+    msgs/es_sv.msg
+    msgs/es_uy.msg
+    msgs/es_ve.msg
+    msgs/et.msg
+    msgs/eu.msg
+    msgs/eu_es.msg
+    msgs/fa.msg
+    msgs/fa_in.msg
+    msgs/fa_ir.msg
+    msgs/fi.msg
+    msgs/fo.msg
+    msgs/fo_fo.msg
+    msgs/fr.msg
+    msgs/fr_be.msg
+    msgs/fr_ca.msg
+    msgs/fr_ch.msg
+    msgs/ga.msg
+    msgs/ga_ie.msg
+    msgs/gl.msg
+    msgs/gl_es.msg
+    msgs/gv.msg
+    msgs/gv_gb.msg
+    msgs/he.msg
+    msgs/hi.msg
+    msgs/hi_in.msg
+    msgs/hr.msg
+    msgs/hu.msg
+    msgs/id.msg
+    msgs/id_id.msg
+    msgs/is.msg
+    msgs/it.msg
+    msgs/it_ch.msg
+    msgs/ja.msg
+    msgs/kl.msg
+    msgs/kl_gl.msg
+    msgs/ko.msg
+    msgs/ko_kr.msg
+    msgs/kok.msg
+    msgs/kok_in.msg
+    msgs/kw.msg
+    msgs/kw_gb.msg
+    msgs/lt.msg
+    msgs/lv.msg
+    msgs/mk.msg
+    msgs/mr.msg
+    msgs/mr_in.msg
+    msgs/ms.msg
+    msgs/ms_my.msg
+    msgs/mt.msg
+    msgs/nb.msg
+    msgs/nl.msg
+    msgs/nl_be.msg
+    msgs/nn.msg
+    msgs/pl.msg
+    msgs/pt.msg
+    msgs/pt_br.msg
+    msgs/ro.msg
+    msgs/ru.msg
+    msgs/ru_ua.msg
+    msgs/sh.msg
+    msgs/sk.msg
+    msgs/sl.msg
+    msgs/sq.msg
+    msgs/sr.msg
+    msgs/sv.msg
+    msgs/sw.msg
+    msgs/ta.msg
+    msgs/ta_in.msg
+    msgs/te.msg
+    msgs/te_in.msg
+    msgs/th.msg
+    msgs/tr.msg
+    msgs/uk.msg
+    msgs/vi.msg
+    msgs/zh.msg
+    msgs/zh_cn.msg
+    msgs/zh_hk.msg
+    msgs/zh_sg.msg
+    msgs/zh_tw.msg
+    opt0.4/optparse.tcl
+    opt0.4/pkgIndex.tcl
+    package.tcl
+    parray.tcl
+    safe.tcl
+    tclAppInit.c
+    tclIndex
+    tm.tcl
+    word.tcl
+    )
+  ExternalProject_ByProducts(TCL_BLD ${INCLUDE_DIR}
+    tclDecls.h
+    tcl.h
+    tclOODecls.h
+    tclOO.h
+    tclPlatDecls.h
+    tclTomMathDecls.h
+    tclTomMath.h
+    )
+
+  list(APPEND BRLCAD_DEPS TCL_BLD)
+
+  set(TCL_LIBRARIES tcl CACHE STRING "Building bundled tcl" FORCE)
+  set(TCL_INCLUDE_DIRS "${CMAKE_BINARY_DIR}/${INCLUDE_DIR}" CACHE STRING 
"Directory containing tcl headers." FORCE)
+
+  SetTargetFolder(TCL_BLD "Third Party Libraries")
+  SetTargetFolder(tcl "Third Party Libraries")
+
+endif (${CMAKE_PROJECT_NAME}_TCL_BUILD)
+
+# Local Variables:
+# tab-width: 8
+# mode: cmake
+# indent-tabs-mode: t
+# End:
+# ex: shiftwidth=2 tabstop=8
+


Property changes on: brlcad/branches/thirdparty_rework/src/superbuild/tcl.cmake
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to