added gflib.cmake to save a ton of typing that I already did for the most part. Oh well, since source to edit in the future ;)
--- a/gflib/CMakeLists.txt Mon Dec 13 23:40:42 2010 -0600
+++ b/gflib/CMakeLists.txt Tue Dec 14 23:31:17 2010 -0600
@@ -1,101 +1,19 @@
cmake_minimum_required(VERSION 2.8)
-###############################################################################
-###############################################################################
-set(GFLIB_MAJOR_VERSION 0)
-set(GFLIB_MINOR_VERSION 0)
-set(GFLIB_MICRO_VERSION 1)
-set(GFLIB_EXTRA_VERSION dev)
+set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules) -set(VERSION ${GFLIB_MAJOR_VERSION}.${GFLIB_MINOR_VERSION}.${GFLIB_MICRO_VERSION}${GFLIB_EXTRA_VERSION})
-###############################################################################
-###############################################################################
-pkg_check_modules(GLIB REQUIRED
+GFLIB_LIBRARY_PROJECT(gflib 0 0 1 dev) pkg_check_modules(GMODULE REQUIRED gmodule-2.0>=2.16.0)
-find_program(GLIB_GENMARSHAL
- DOC "glib-genmarshal executable"
-mark_as_advanced(GLIB_GENMARSHAL)
-find_program(GLIB_MKENUMS
- DOC "glib-mkenums executable"
-mark_as_advanced(GLIB_MKENUMS)
- DOC "gtester executable"
-mark_as_advanced(GTESTER)
+include_directories(${GMODULE_INCLUDE_DIRS}) +link_directories(${GMODULE_LIBRARY_DIRS}) -###############################################################################
-###############################################################################
- ${CMAKE_SOURCE_DIR}/gflib
- ${CMAKE_BINARY_DIR}/gflib
- ${GMODULE_INCLUDE_DIRS}
- ${GMODULE_LIBRARY_DIRS}
- -DGETTEXT_PACKAGE="gflib"
- -DDATADIR="${CMAKE_INSTALL_PREFIX}/share"
- -DLIBDIR="${CMAKE_INSTALL_PREFIX}/lib"
- -DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/locale"
-###############################################################################
-###############################################################################
add_subdirectory(contrib)
-###############################################################################
-###############################################################################
-configure_file(gflib.pc.in gflib.pc @ONLY)
-###############################################################################
-###############################################################################
-###############################################################################
-###############################################################################
- FILES AUTHORS ChangeLog COPYING NEWS README
- DESTINATION share/doc/gflib
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/gflib.pc DESTINATION lib/pkgconfig)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gflib/cmake/CMakeLists.txt Tue Dec 14 23:31:17 2010 -0600
@@ -0,0 +1,2 @@
+add_subdirectory(Modules) --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gflib/cmake/Modules/CMakeLists.txt Tue Dec 14 23:31:17 2010 -0600
@@ -0,0 +1,5 @@
+ DESTINATION share/cmake-${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}/Modules --- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/gflib/cmake/Modules/gflib.cmake Tue Dec 14 23:31:17 2010 -0600
@@ -0,0 +1,112 @@
+macro(_gflib_add_dependencies _project _is_gflib) + # if we're on osx add the fink and macports pkg-config paths + if(${CMAKE_HOST_APPLE}) + set(ENV{PKG_CONFIG_PATH} $ENV{PKG_CONFIG_PATH} /sw/lib/pkgconfig /opt/local/lib/pkgconfig) + endif(${CMAKE_HOST_APPLE}) + # look for glib and it's helper tools + pkg_check_modules(GLIB REQUIRED + find_program(GLIB_GENMARSHAL + DOC "glib-genmarshal executable" + mark_as_advanced(GLIB_GENMARSHAL) + find_program(GLIB_MKENUMS + DOC "glib-mkenums executable" + mark_as_advanced(GLIB_MKENUMS) + DOC "gtester executable" + mark_as_advanced(GTESTER) + # now add gflib as a dependency unless this is gflib + pkg_check_modules(GFLIB REQUIRED gflib) + endif(NOT ${_is_gflib}) +endmacro(_gflib_add_dependencies) +# This macro adds our include directories, link directories, and definitions +macro(_gflib_add_build_info _project _is_gflib) + -DGETTEXT_PACKAGE="${_project}" + -DDATADIR="${CMAKE_INSTALL_PREFIX}/share" + -DLIBDIR="${CMAKE_INSTALL_PREFIX}/lib" + -DLOCALEDIR="${CMAKE_INSTALL_PREFIX}/locale" + include_directories(${GFLIB_INCLUDE_DIRS}) + link_directories(${GFLIB_LIBRARY_DIRS}) + endif(NOT ${_is_gflib}) +endmacro(_gflib_add_build_info) +macro(GFLIB_PROJECT _project _major _minor _micro _extra) + string(TOUPPER ${_project} _project_upper) + set(${_project_upper}_MAJOR_VERSION ${_major}) + set(${_project_upper}_MINOR_VERSION ${_minor}) + set(${_project_upper}_MICRO_VERSION ${_micro}) + set(${_project_upper}_EXTRA_VERSION ${_extra}) + set(VERSION ${${_project_upper}_MAJOR_VERSION}.${${_project_upper}_MINOR_VERSION}.${${_project_upper}_MICRO_VERSION}${${_project_upper}_EXTRA_VERSION}) + string(COMPARE EQUAL ${_project} gflib _is_gflib) + _gflib_add_dependencies(${_project} ${_is_gflib}) + _gflib_add_build_info(${_project} ${_is_gflib}) + # we assume we still have all the autotools documentation files to install + FILES AUTHORS ChangeLog COPYING NEWS README + DESTINATION share/doc/${_project} +macro(GFLIB_LIBRARY_PROJECT _project _major _minor _micro _extra) + # call the main project macro + GFLIB_PROJECT(${_project} ${_major} ${_minor} ${_micro} ${_extra}) + # since this is a library, we assume that the src directory is the project + # name and add it and the binary directory to our include_directories + ${CMAKE_SOURCE_DIR}/${_project} + ${CMAKE_BINARY_DIR}/${_project} + # add and install the pkg-config file + configure_file(${_project}.pc.in ${_project}.pc @ONLY) + FILES ${CMAKE_CURRENT_BINARY_DIR}/${_project}.pc + DESTINATION lib/pkgconfig +endmacro(GFLIB_LIBRARY_PROJECT)