From: ibs Date: Thu, 25 Apr 2013 14:03:58 +0000 (+0400) Subject: 0023929: WOK doesn't correctly generate cmake meta-projects of OCCT X-Git-Tag: V6_7_1~45 X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=3e73835e52c570753086a27c34faefc1f9fb0b24;p=occt-wok.git 0023929: WOK doesn't correctly generate cmake meta-projects of OCCT .mm files included in mac case 0023929: WOK doesn't correctly generate cmake meta-projects of OCCT if MACOSX_USE_GLX is defined, /use/X11/lib is added to include directories Fixed X11 link options for cmake Fixed Xw package building with cmake Fixed linking problem --- diff --git a/src/WOKTclLib/osutils.tcl b/src/WOKTclLib/osutils.tcl index 58c9a68..adc8bde 100755 --- a/src/WOKTclLib/osutils.tcl +++ b/src/WOKTclLib/osutils.tcl @@ -232,6 +232,10 @@ proc osutils:compilable { } { return [list .c .cxx .cpp] } +proc osutils:mm_compilable { } { + return [list .mm] +} + proc osutils:optinal_libs { } { return [list tbb.lib tbbmalloc.lib FreeImage.lib FreeImagePlus.lib gl2ps.lib] } @@ -1829,7 +1833,6 @@ proc osutils:csfList { theOS theCsfMap } { if { "$theOS" == "lin" } { set aCsfMap(CSF_ThreadLibs) "pthread rt" - set aCsfMap(CSF_XwLibs) "X11 Xext Xmu Xi" set aCsfMap(CSF_OpenGlLibs) "GLU GL" } elseif { "$theOS" == "mac" } { @@ -1841,11 +1844,12 @@ proc osutils:csfList { theOS theCsfMap } { set aCsfMap(CSF_OpenGlLibs) "OpenGL" } + set aCsfMap(CSF_XwLibs) "X11 Xext Xmu Xi" set aCsfMap(CSF_MotifLibs) "X11" #-- Tcl/Tk configuration set aCsfMap(CSF_TclLibs) "tcl8.5" - set aCsfMap(CSF_TclTkLibs) "tk8.5 X11" + set aCsfMap(CSF_TclTkLibs) "X11 tk8.5" # variable is required for support for OCCT version that use fgtl #-- FTGL (font renderer for OpenGL) @@ -1898,13 +1902,18 @@ proc osutils:incpaths { theUnits theRelatedPath } { return $anIncPaths } -proc osutils:tksrcfiles { theUnits theRelatedPath } { +proc osutils:tksrcfiles { theUnits theRelatedPath {theCompatible {}} } { set aTKSrcFiles [list] if [array exists written] { unset written } foreach anUnit $theUnits { set xlo [wokinfo -n $anUnit] set aSrcFiles [osutils:tk:files $xlo osutils:compilable 0] + + if { $theCompatible != {} } { + set aSrcFiles [osutils:tk:files $xlo $theCompatible 0] + } + foreach aSrcFile [lsort $aSrcFiles] { if { ![info exists written([file tail $aSrcFile])] } { set written([file tail $aSrcFile]) 1 @@ -1981,6 +1990,8 @@ proc osutils:cmktk { theOutDir theToolKit {theIsExec false} theModule} { set aCommonTKSrcFiles [osutils:tksrcfiles $anCommonUnits $aRelatedPath] set aWntTKSrcFiles [osutils:tksrcfiles $aWntUnits $aRelatedPath] set aUnixTKSrcFiles [osutils:tksrcfiles $anUnixUnits $aRelatedPath] + + set aCommonTK_mm_SrcFiles [osutils:tksrcfiles $anCommonUnits $aRelatedPath osutils:mm_compilable] set aFileBuff [list "project(${theToolKit})\n"] @@ -2045,6 +2056,18 @@ proc osutils:cmktk { theOutDir theToolKit {theIsExec false} theModule} { lappend aFileBuff " list( APPEND ${theToolKit}_USED_LIBS \$\{X11_Xi_LIB\} )" lappend aFileBuff " list( APPEND ${theToolKit}_USED_LIBS \$\{X11_Xmu_LIB\} )" lappend aFileBuff " endif()" + } elseif { $anUsedMacLib == "Xext" } { + lappend aFileBuff " if(3RDPARTY_USE_GLX)" + lappend aFileBuff " list( APPEND ${theToolKit}_USED_LIBS ${anUsedMacLib} )" + lappend aFileBuff " endif()" + } elseif { $anUsedMacLib == "Xmu" } { + lappend aFileBuff " if(3RDPARTY_USE_GLX)" + lappend aFileBuff " list( APPEND ${theToolKit}_USED_LIBS ${anUsedMacLib} )" + lappend aFileBuff " endif()" + } elseif { $anUsedMacLib == "Xi" } { + lappend aFileBuff " if(3RDPARTY_USE_GLX)" + lappend aFileBuff " list( APPEND ${theToolKit}_USED_LIBS ${anUsedMacLib} )" + lappend aFileBuff " endif()" } elseif { $anUsedMacLib == "Appkit" } { lappend aFileBuff " find_library(FRAMEWORKS_APPKIT NAMES Appkit)" lappend aFileBuff " list( APPEND ${theToolKit}_USED_LIBS \$\{FRAMEWORKS_APPKIT\} )" @@ -2095,6 +2118,12 @@ proc osutils:cmktk { theOutDir theToolKit {theIsExec false} theModule} { lappend aFileBuff " SOURCE_GROUP ([string range [osutils:fileGroupName $aWntTKSrcFile] 1 end] FILES \"${aWntTKSrcFile}\")\n" } lappend aFileBuff "else()\n" + lappend aFileBuff " if (APPLE)\n" + foreach aCommonTK_mm_SrcFile $aCommonTK_mm_SrcFiles { + lappend aFileBuff " list( APPEND ${theToolKit}_USED_SRCFILES \"${aCommonTK_mm_SrcFile}\" )" + lappend aFileBuff " SOURCE_GROUP ([string range [osutils:fileGroupName $aCommonTK_mm_SrcFile] 1 end] FILES \"${aCommonTK_mm_SrcFile}\")\n" + } + lappend aFileBuff " endif()\n" foreach aUnixTKSrcFile $aUnixTKSrcFiles { lappend aFileBuff " list( APPEND ${theToolKit}_USED_SRCFILES \"${aUnixTKSrcFile}\" )" lappend aFileBuff " SOURCE_GROUP ([string range [osutils:fileGroupName $aUnixTKSrcFile] 1 end] FILES \"${aUnixTKSrcFile}\")\n" diff --git a/src/WOKTclLib/templates/template.cmake b/src/WOKTclLib/templates/template.cmake index 0593c41..993f5b8 100644 --- a/src/WOKTclLib/templates/template.cmake +++ b/src/WOKTclLib/templates/template.cmake @@ -177,6 +177,11 @@ SET(3RDPARTY_DIR "" CACHE PATH "Directory contains required 3rdparty products") SET(3RDPARTY_INCLUDE_DIRS "") SET(3RDPARTY_NOT_INCLUDED) +IF (3RDPARTY_USE_GLX) + SET(3RDPARTY_LIBRARY_DIRS "${3RDPARTY_LIBRARY_DIRS};/usr/X11/lib") + SET(3RDPARTY_INCLUDE_DIRS "${3RDPARTY_INCLUDE_DIRS};/usr/X11/include") +ENDIF() + SET(3RDPARTY_USE_GL2PS OFF CACHE BOOL "whether use or not gl2ps product") SET(3RDPARTY_USE_FREEIMAGE OFF CACHE BOOL "whether use or not freeimage product") SET(3RDPARTY_USE_TBB OFF CACHE BOOL "whether use or not tbb product") @@ -442,13 +447,13 @@ ENDIF() list(REMOVE_DUPLICATES 3RDPARTY_INCLUDE_DIRS) string( REGEX REPLACE ";" "\n\t" 3RDPARTY_INCLUDE_DIRS_WITH_ENDS "${3RDPARTY_INCLUDE_DIRS}") MESSAGE(STATUS "3RDPARTY_INCLUDE_DIRS: ${3RDPARTY_INCLUDE_DIRS_WITH_ENDS}") - include_directories( ${3RDPARTY_INCLUDE_DIRS} ) +include_directories( ${3RDPARTY_INCLUDE_DIRS} ) list(REMOVE_DUPLICATES 3RDPARTY_LIBRARY_DIRS) string( REGEX REPLACE ";" "\n\t" 3RDPARTY_LIBRARY_DIRS_WITH_ENDS "${3RDPARTY_LIBRARY_DIRS}") MESSAGE(STATUS "3RDPARTY_LIBRARY_DIRS: ${3RDPARTY_LIBRARY_DIRS_WITH_ENDS}") - link_directories( ${3RDPARTY_LIBRARY_DIRS} ) - +link_directories( ${3RDPARTY_LIBRARY_DIRS} ) + # SET(RUN_PROJECT "") SET(CASROOT_DEFINITION "")