From 7a8c0612437f2881f829744e7236882f7385e70d Mon Sep 17 00:00:00 2001 From: ellson Date: Sat, 8 Jul 2006 22:58:10 +0000 Subject: [PATCH] cmake development --- cmake/FindPkgConfig.cmake | 16 +++ cmake/FindRuby.cmake | 40 ++++++++ cmake/FindSWIG.cmake | 8 ++ cmake/FindTCL.cmake | 199 ++++++++++++++++++++++++++++++++++++ lib/twopigen/CMakeLists.txt | 50 +-------- 5 files changed, 265 insertions(+), 48 deletions(-) create mode 100644 cmake/FindPkgConfig.cmake create mode 100644 cmake/FindRuby.cmake create mode 100644 cmake/FindSWIG.cmake create mode 100644 cmake/FindTCL.cmake diff --git a/cmake/FindPkgConfig.cmake b/cmake/FindPkgConfig.cmake new file mode 100644 index 000000000..5de4d688c --- /dev/null +++ b/cmake/FindPkgConfig.cmake @@ -0,0 +1,16 @@ +# +# This module finds if pkg-config is installed and determines where binary is. +# This # code sets the following variables: +# +# PKGCONFIG_FOUND = 1 if found, else 0 +# PKGCONFIG_EXECUTABLE = full path to the ruby binary +# + +FIND_PROGRAM(PKGCONFIG_EXECUTABLE + NAMES pkg-config + PATHS /usr/bin /usr/local/bin +) +SET(PKGCONFIG_FOUND 0) +IF(EXISTS ${PKGCONFIG_EXECUTABLE}) + SET(PKGCONFIG_FOUND 1) +ENDIF(EXISTS ${PKGCONFIG_EXECUTABLE}) diff --git a/cmake/FindRuby.cmake b/cmake/FindRuby.cmake new file mode 100644 index 000000000..b382305d3 --- /dev/null +++ b/cmake/FindRuby.cmake @@ -0,0 +1,40 @@ +# +# This module finds if RUBY is installed and determines where the include files +# and libraries are. It also determines what the name of the library is. This +# code sets the following variables: +# +# RUBY_FOUND = 1 if found, else 0 +# RUBY_INCLUDE_PATH = path to where ruby.h can be found +# RUBY_EXECUTABLE = full path to the ruby binary +# + +SET(RUBY_POSSIBLE_INCLUDE_PATHS + /usr/lib/ruby/1.8/i386-linux + /usr/lib64/ruby/1.8/x86_64-linux +) +SET(RUBY_POSSIBLE_LIB_PATHS + /usr/lib + /usr/lib64 +) +FIND_PATH(RUBY_INCLUDE_PATH ruby.h + ${RUBY_POSSIBLE_INCLUDE_PATHS} +) +FIND_LIBRARY(RUBY_LIBRARY + NAMES ruby1.8 + PATHS ${RUBY_POSSIBLE_LIB_PATHS} +) +FIND_PROGRAM(RUBY_EXECUTABLE + NAMES ruby1.8 + PATHS /usr/bin /usr/local/bin +) +MARK_AS_ADVANCED( + RUBY_EXECUTABLE + RUBY_LIBRARY + RUBY_INCLUDE_PATH +) +SET(RUBY_INCLUDES ${RUBY_INCLUDE_PATH}) +SET(SWIG_FOUND 0) +IF(EXISTS ${SWIG_EXECUTABLE}) + SET(SWIG_FOUND 1) +ENDIF(EXISTS ${SWIG_EXECUTABLE}) + diff --git a/cmake/FindSWIG.cmake b/cmake/FindSWIG.cmake new file mode 100644 index 000000000..31a4bb98f --- /dev/null +++ b/cmake/FindSWIG.cmake @@ -0,0 +1,8 @@ +FIND_PROGRAM(SWIG_EXECUTABLE + NAMES swig-1.3 swig + PATHS /usr/bin /usr/local/bin +) +SET(SWIG_FOUND 0) +IF(EXISTS ${SWIG_EXECUTABLE}) + SET(SWIG_FOUND 1) +ENDIF(EXISTS ${SWIG_EXECUTABLE}) diff --git a/cmake/FindTCL.cmake b/cmake/FindTCL.cmake new file mode 100644 index 000000000..c807c4808 --- /dev/null +++ b/cmake/FindTCL.cmake @@ -0,0 +1,199 @@ +# +# This module finds if TCL is installed and determines where the +# include files and libraries are. It also determines what the name of +# the library is. This code sets the following variables: +# +# TCL_FOUND = 1 if found, else 0 +# TCL_LIBRARY = full path to the Tcl library (tcl tcl80 etc) +# TCL_LIBRARY_DEBUG = full path to the Tcl library (debug) +# TCL_STUB_LIBRARY = full path to the Tcl stub library +# TCL_STUB_LIBRARY_DEBUG = full path to the Tcl stub library (debug) +# TCL_INCLUDE_PATH = path to where tcl.h can be found +# TCL_TCLSH = full path to the tclsh binary (tcl tcl80 etc) +# +# TK_FOUND = 1 if found, else 0 +# TK_LIBRARY = full path to the Tk library (tk tk80 etc) +# TK_LIBRARY_DEBUG = full path to the Tk library (debug) +# TK_STUB_LIBRARY = full path to the Tk stub library +# TK_STUB_LIBRARY_DEBUG = full path to the Tk stub library (debug) +# TK_INCLUDE_PATH = path to where tk.h can be found +# TK_INTERNAL_PATH = path to where tkWinInt.h can be found +# TK_WISH = full path to the wish binary (wish wish80 etc) +# + +INCLUDE(CMakeFindFrameworks) +INCLUDE(FindTclsh) +INCLUDE(FindWish) + +GET_FILENAME_COMPONENT(TCL_TCLSH_PATH "${TCL_TCLSH}" PATH) +GET_FILENAME_COMPONENT(TK_WISH_PATH "${TK_WISH}" PATH) + +SET (TCLTK_POSSIBLE_LIB_PATHS + "${TCL_TCLSH_PATH}/../lib" + "${TK_WISH_PATH}/../lib" + "${TCL_INCLUDE_PATH}/../lib" + "${TK_INCLUDE_PATH}/../lib" + "C:/Program Files/Tcl/lib" + "C:/Tcl/lib" + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/lib + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/lib + /usr/lib + /usr/local/lib +) + +FIND_LIBRARY(TCL_LIBRARY + NAMES tcl tcl84 tcl8.4 tcl83 tcl8.3 tcl82 tcl8.2 tcl80 tcl8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TCL_LIBRARY_DEBUG + NAMES tcld tcl84d tcl8.4d tcl83d tcl8.3d tcl82d tcl8.2d tcl80d tcl8.0d + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TCL_STUB_LIBRARY + NAMES tclstub tclstub84 tclstub8.4 tclstub83 tclstub8.3 tclstub82 tclstub8.2 tclstub80 tclstub8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TCL_STUB_LIBRARY_DEBUG + NAMES tclstubd tclstub84d tclstub8.4d tclstub83d tclstub8.3d tclstub82d tclstub8.2d tclstub80d tclstub8.0d + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TK_LIBRARY + NAMES tk tk84 tk8.4 tk83 tk8.3 tk82 tk8.2 tk80 tk8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TK_LIBRARY_DEBUG + NAMES tkd tk84d tk8.4d tk83d tk8.3d tk82d tk8.2d tk80d tk8.0d + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TK_STUB_LIBRARY + NAMES tkstub tkstub84 tkstub8.4 tkstub83 tkstub8.3 tkstub82 tkstub8.2 tkstub80 tkstub8.0 + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +FIND_LIBRARY(TK_STUB_LIBRARY_DEBUG + NAMES tkstubd tkstub84d tkstub8.4d tkstub83d tkstub8.3d tkstub82d tkstub8.2d tkstub80d tkstub8.0d + PATHS ${TCLTK_POSSIBLE_LIB_PATHS} +) + +CMAKE_FIND_FRAMEWORKS(Tcl) +CMAKE_FIND_FRAMEWORKS(Tk) + +SET(TCL_FRAMEWORK_INCLUDES) +IF(Tcl_FRAMEWORKS) + IF(NOT TCL_INCLUDE_PATH) + FOREACH(dir ${Tcl_FRAMEWORKS}) + SET(TCL_FRAMEWORK_INCLUDES ${TCL_FRAMEWORK_INCLUDES} ${dir}/Headers) + ENDFOREACH(dir) + ENDIF(NOT TCL_INCLUDE_PATH) +ENDIF(Tcl_FRAMEWORKS) + +SET(TK_FRAMEWORK_INCLUDES) +IF(Tk_FRAMEWORKS) + IF(NOT TK_INCLUDE_PATH) + FOREACH(dir ${Tk_FRAMEWORKS}) + SET(TK_FRAMEWORK_INCLUDES ${TK_FRAMEWORK_INCLUDES} + ${dir}/Headers ${dir}/PrivateHeaders) + ENDFOREACH(dir) + ENDIF(NOT TK_INCLUDE_PATH) +ENDIF(Tk_FRAMEWORKS) + +GET_FILENAME_COMPONENT(TCL_LIBRARY_PATH "${TCL_LIBRARY}" PATH) +GET_FILENAME_COMPONENT(TK_LIBRARY_PATH "${TK_LIBRARY}" PATH) + +SET (TCLTK_POSSIBLE_INCLUDE_PATHS + ${TCL_TCLSH_PATH}/../include + ${TK_WISH_PATH}/../include + "${TCL_LIBRARY_PATH}/../include" + "${TK_LIBRARY_PATH}/../include" + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.4;Root]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.3;Root]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.2;Root]/include + [HKEY_LOCAL_MACHINE\\SOFTWARE\\Scriptics\\Tcl\\8.0;Root]/include + "C:/Program Files/Tcl/include" + C:/Tcl/include + /usr/include + /usr/local/include + /usr/include/tcl8.4 + /usr/include/tcl8.3 + /usr/include/tcl8.2 + /usr/include/tcl8.0 +) + +FIND_PATH(TCL_INCLUDE_PATH tcl.h + ${TCL_FRAMEWORK_INCLUDES} ${TCLTK_POSSIBLE_INCLUDE_PATHS} +) + +FIND_PATH(TK_INCLUDE_PATH tk.h + ${TK_FRAMEWORK_INCLUDES} ${TCLTK_POSSIBLE_INCLUDE_PATHS} +) + +IF (WIN32) + FIND_PATH(TK_INTERNAL_PATH tkWinInt.h + ${TCLTK_POSSIBLE_INCLUDE_PATHS} + ) + MARK_AS_ADVANCED(TK_INTERNAL_PATH) + + MARK_AS_ADVANCED( + TCL_TCLSH_PATH + TK_WISH_PATH + TCL_INCLUDE_PATH + TK_INCLUDE_PATH + TCL_LIBRARY + TCL_LIBRARY_DEBUG + TK_LIBRARY + TK_LIBRARY_DEBUG + ) +ENDIF(WIN32) + +IF(Tcl_FRAMEWORKS) + # If we are using the Tcl framework, link to it. + IF("${TCL_INCLUDE_PATH}" MATCHES "Tcl\\.framework") + SET(TCL_LIBRARY "") + ENDIF("${TCL_INCLUDE_PATH}" MATCHES "Tcl\\.framework") + IF(NOT TCL_LIBRARY) + SET (TCL_LIBRARY "-framework Tcl" CACHE FILEPATH "Tcl Framework" FORCE) + ENDIF(NOT TCL_LIBRARY) +ENDIF(Tcl_FRAMEWORKS) + +IF(Tk_FRAMEWORKS) + # If we are using the Tk framework, link to it. + IF("${TK_INCLUDE_PATH}" MATCHES "Tk\\.framework") + SET(TK_LIBRARY "") + ENDIF("${TK_INCLUDE_PATH}" MATCHES "Tk\\.framework") + IF(NOT TK_LIBRARY) + SET (TK_LIBRARY "-framework Tk" CACHE FILEPATH "Tk Framework" FORCE) + ENDIF(NOT TK_LIBRARY) +ENDIF(Tk_FRAMEWORKS) + +MARK_AS_ADVANCED( + TCL_STUB_LIBRARY + TCL_STUB_LIBRARY_DEBUG + TK_STUB_LIBRARY + TK_STUB_LIBRARY_DEBUG + ) + +SET(TCL_FOUND 0) +IF(TCL_INCLUDE_PATH) + IF(TCL_LIBRARY) + SET(TCL_FOUND 1) + ENDIF(TCL_LIBRARY) +ENDIF(TCL_INCLUDE_PATH) + +SET(TK_FOUND 0) +IF(TCL_FOUND) + IF(TK_INCLUDE_PATH) + IF(TK_LIBRARY) + SET(TK_FOUND 1) + ENDIF(TK_LIBRARY) + ENDIF(TK_INCLUDE_PATH) +ENDIF(TCL_FOUND) + +SET(TCL_INCLUDES "${TCL_INCLUDE_PATH}") diff --git a/lib/twopigen/CMakeLists.txt b/lib/twopigen/CMakeLists.txt index 632a908eb..b75ee207f 100644 --- a/lib/twopigen/CMakeLists.txt +++ b/lib/twopigen/CMakeLists.txt @@ -1,52 +1,6 @@ # $Id$ $Revision$ -## Process this file with cmake to produce Makefile -INCLUDE_DIRECTORIES( - ${CMAKE_CURRENT_SOURCE_DIR} - ${CMAKE_SOURCE_DIR} - ${CMAKE_SOURCE_DIR}/lib/common - ${CMAKE_SOURCE_DIR}/lib/gvc - ${CMAKE_SOURCE_DIR}/lib/neatogen - ${CMAKE_SOURCE_DIR}/lib/pack - ${CMAKE_SOURCE_DIR}/lib/pathplan - ${CMAKE_SOURCE_DIR}/lib/graph - ${CMAKE_SOURCE_DIR}/lib/cdt -) - - -########### next target ############### - -SET(twopigen_SRCS - twopiinit.c - circle.c -) +INCLUDE(${CMAKE_SOURCE_DIR}/cmake/directories.cmake) +INCLUDE(${twopigen_SRCDIR}/sources.cmake) ADD_LIBRARY(twopigen STATIC ${twopigen_SRCS}) - - -########### install files ############### - - - - -#original Makefile.am contents follow: - -## $Id$ $Revision$ -### Process this file with automake to produce Makefile.in -# -#AM_CPPFLAGS = \ -# -I$(top_srcdir) \ -# -I$(top_srcdir)/lib/common \ -# -I$(top_srcdir)/lib/gvc \ -# -I$(top_srcdir)/lib/neatogen \ -# -I$(top_srcdir)/lib/pack \ -# -I$(top_srcdir)/lib/pathplan \ -# -I$(top_srcdir)/lib/graph \ -# -I$(top_srcdir)/lib/cdt -# -#noinst_HEADERS = circle.h -#noinst_LTLIBRARIES = libtwopigen_C.la -# -#libtwopigen_C_la_SOURCES = twopiinit.c circle.c -# -#EXTRA_DIST = Makefile.old -- 2.40.0