[Geotiff] CMakeList.txt

David Burken dburken at comcast.net
Thu Jun 16 11:45:36 EST 2011


Hi Everyone,

Very happy to see the addition of the CMakeList.txt to libgeotiff.  Just 
some comments.  Please I'm not picking on anyone just trying to give 
some useful feedback.  I really appreciate the addition.

This was a build from linux (Fedora flavor).

1) Seems there is a file that is not under svn so the initial "make 
install" was failing.

CMake Error at cmake_install.cmake:49 (FILE):
   file INSTALL cannot find "/work/osgeo/libgeotiff/csv/codes.csv".

2) My libraries went to bin on unix on a make.

3) I typically install to some prefix so I usually set 
"CMAKE_INSTALL_PREFIX" and rely on it putting things in bin, include, 
lib, share, doc.  The way it was coded I could not override.  Or I 
should say I couldn't figure it out without setting a bunch of variables 
in my cmake command.

After a little tweaking I got a good "make install".

I hope this is useful to someone.  See below for more.  I can send my 
CMakeList.txt if anyone would like.

Take care,
Dave


Here's my cmake out of source build script if anyone is interested.  
Note all my other stuff, i.e. libtiff, proj4 was installed to 
/work/osgeo/local sandbox.

//--------------
#!/bin/sh
# File: libgeotiff-cmake-config.sh
build_dir="/work/osgeo";
cmake -G "Unix Makefiles" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INCLUDE_PATH=${build_dir}/local/include \
-DCMAKE_INSTALL_PREFIX=${build_dir}/local \
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${build_dir}/local \
-DCMAKE_LIBRARY_PATH=${build_dir}/local/lib \
-DCMAKE_MODULE_PATH=${build_dir}/ossim_package_support/cmake/CMakeModules \
../../libgeotiff/
//-------------


Here's the patch to CMakeList.txt.  Note this has hard coded things in 
it like "lib" that should be variables.  And probably should add version 
to the library output for unix's...

//----------------
--- CMakeLists.txt    (revision 2053)
+++ CMakeLists.txt    (working copy)
@@ -41,13 +41,16 @@
  SET(GEOTIFF_BUILD_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)

  # Output directory in which to build RUNTIME target files.
-SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${GEOTIFF_BUILD_OUTPUT_DIRECTORY})
+# SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${GEOTIFF_BUILD_OUTPUT_DIRECTORY})
+SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)

  # Output directory in which to build LIBRARY target files
-SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${GEOTIFF_BUILD_OUTPUT_DIRECTORY})
+# SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${GEOTIFF_BUILD_OUTPUT_DIRECTORY})
+SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)

  # Output directory in which to build ARCHIVE target files.
-SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${GEOTIFF_BUILD_OUTPUT_DIRECTORY})
+# SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${GEOTIFF_BUILD_OUTPUT_DIRECTORY})
+SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)

  ###############################################################################
  # Platform and compiler specific settings
@@ -200,7 +203,6 @@
      csv/alias.csv
      csv/area.csv
      csv/change.csv
-    csv/codes.csv
      csv/coordinate_axis.csv
      csv/coordinate_axis_name.csv
      csv/coordinate_operation.csv
@@ -223,6 +225,7 @@
      csv/stateplane.csv
      csv/unit_of_measure.csv
      csv/version_history.csv)
+#    csv/codes.csv

  SET(GEOTIFF_LIB_HEADERS
      geotiff.h
@@ -247,6 +250,8 @@
      epsg_vertcs.inc
      geokeys.inc)

+
+
  IF(WIN32)
      SET(DEFAULT_LIB_SUBDIR lib)
      SET(DEFAULT_DATA_SUBDIR .)
@@ -288,13 +293,16 @@
  # Install doc files
  INSTALL(FILES
      AUTHORS ChangeLog COPYING INSTALL LICENSE README README_BIN README.WIN
-    DESTINATION ${GEOTIFF_DATA_DIR}/doc)
+    DESTINATION doc)
+#    DESTINATION ${GEOTIFF_DATA_DIR}/doc)

  # Install CSV data files
-INSTALL(FILES ${GEOTIFF_CSV_DATA} DESTINATION ${GEOTIFF_DATA_DIR}/epsg_csv)
+# INSTALL(FILES ${GEOTIFF_CSV_DATA} DESTINATION 
${GEOTIFF_DATA_DIR}/epsg_csv)
+INSTALL(FILES ${GEOTIFF_CSV_DATA} DESTINATION share/epsg_csv)

  # Install header files for development distribution
-INSTALL(FILES ${GEOTIFF_LIB_HEADERS} DESTINATION ${GEOTIFF_INCLUDE_DIR})
+# INSTALL(FILES ${GEOTIFF_LIB_HEADERS} DESTINATION ${GEOTIFF_INCLUDE_DIR})
+INSTALL(FILES ${GEOTIFF_LIB_HEADERS} DESTINATION include)

  ###############################################################################
  # Build libxtiff library
@@ -348,7 +356,7 @@
  ENDIF()

  SET_TARGET_PROPERTIES(${GEOTIFF_LIBRARY_TARGET} PROPERTIES
-    OUTPUT_NAME ${GEOTIFF_LIB_NAME})
+   OUTPUT_NAME ${GEOTIFF_LIB_NAME})

  TARGET_LINK_LIBRARIES(${GEOTIFF_LIBRARY_TARGET}
      ${TIFF_LIBRARIES}
@@ -356,11 +364,16 @@
      ${ZLIB_LIBRARIES}
      ${JPEG_LIBRARIES})

-INSTALL(TARGETS ${GEOTIFF_ARCHIVE_TARGET} ${GEOTIFF_LIBRARY_TARGET}
-    RUNTIME DESTINATION ${GEOTIFF_BIN_DIR}
-    LIBRARY DESTINATION ${GEOTIFF_LIB_DIR}
-    ARCHIVE DESTINATION ${GEOTIFF_LIB_DIR})
+# INSTALL(TARGETS ${GEOTIFF_ARCHIVE_TARGET} ${GEOTIFF_LIBRARY_TARGET}
+#    RUNTIME DESTINATION ${GEOTIFF_BIN_DIR}
+#   LIBRARY DESTINATION ${GEOTIFF_LIB_DIR}
+#   ARCHIVE DESTINATION ${GEOTIFF_LIB_DIR})

+INSTALL( TARGETS ${GEOTIFF_ARCHIVE_TARGET} ${GEOTIFF_LIBRARY_TARGET}
+     RUNTIME DESTINATION bin
+         LIBRARY DESTINATION lib
+     ARCHIVE DESTINATION lib )
+
  # Define grouping of source files in PROJECT file (e.g. Visual Studio)
  SOURCE_GROUP("CMake Files" FILES CMakeLists.txt)
  SOURCE_GROUP("Header Files" FILES ${GEOTIFF_LIB_HEADERS})
//---------------------------------------


Make install output:
$ make install
[ 42%] Built target geotiff_archive
[ 85%] Built target geotiff_library
[ 88%] Built target xtiff
[ 91%] Built target applygeo
[ 94%] Built target geotifcp
[ 97%] Built target listgeo
[100%] Built target makegeo
Install the project...
-- Install configuration: "Release"
-- Installing: /work/osgeo/local/doc/AUTHORS
-- Installing: /work/osgeo/local/doc/ChangeLog
-- Installing: /work/osgeo/local/doc/COPYING
-- Installing: /work/osgeo/local/doc/INSTALL
-- Installing: /work/osgeo/local/doc/LICENSE
-- Installing: /work/osgeo/local/doc/README
-- Installing: /work/osgeo/local/doc/README_BIN
-- Installing: /work/osgeo/local/doc/README.WIN
-- Up-to-date: /work/osgeo/local/share/epsg_csv/alias.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/area.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/change.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/coordinate_axis.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/coordinate_axis_name.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/coordinate_operation.csv
-- Up-to-date: 
/work/osgeo/local/share/epsg_csv/coordinate_operation_method.csv
-- Up-to-date: 
/work/osgeo/local/share/epsg_csv/coordinate_operation_parameter.csv
-- Up-to-date: 
/work/osgeo/local/share/epsg_csv/coordinate_operation_parameter_value.csv
-- Up-to-date: 
/work/osgeo/local/share/epsg_csv/coordinate_operation_path.csv
-- Up-to-date: 
/work/osgeo/local/share/epsg_csv/coordinate_reference_system.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/coordinate_system.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/datum.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/ellipsoid.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/esri_datum_override.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/gcs.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/gcs.override.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/naming_system.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/pcs.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/pcs.override.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/prime_meridian.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/projop_wparm.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/stateplane.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/unit_of_measure.csv
-- Up-to-date: /work/osgeo/local/share/epsg_csv/version_history.csv
-- Up-to-date: /work/osgeo/local/include/geotiff.h
-- Up-to-date: /work/osgeo/local/include/geotiffio.h
-- Up-to-date: /work/osgeo/local/include/geovalues.h
-- Up-to-date: /work/osgeo/local/include/geonames.h
-- Up-to-date: /work/osgeo/local/include/geokeys.h
-- Up-to-date: /work/osgeo/local/include/geo_config.h
-- Up-to-date: /work/osgeo/local/include/geo_tiffp.h
-- Up-to-date: /work/osgeo/local/include/geo_keyp.h
-- Up-to-date: /work/osgeo/local/include/geo_normalize.h
-- Up-to-date: /work/osgeo/local/include/cpl_serv.h
-- Up-to-date: /work/osgeo/local/include/geo_simpletags.h
-- Up-to-date: /work/osgeo/local/include/epsg_datum.inc
-- Up-to-date: /work/osgeo/local/include/epsg_gcs.inc
-- Up-to-date: /work/osgeo/local/include/epsg_pm.inc
-- Up-to-date: /work/osgeo/local/include/epsg_units.inc
-- Up-to-date: /work/osgeo/local/include/geo_ctrans.inc
-- Up-to-date: /work/osgeo/local/include/epsg_ellipse.inc
-- Up-to-date: /work/osgeo/local/include/epsg_pcs.inc
-- Up-to-date: /work/osgeo/local/include/epsg_proj.inc
-- Up-to-date: /work/osgeo/local/include/epsg_vertcs.inc
-- Up-to-date: /work/osgeo/local/include/geokeys.inc
-- Installing: /work/osgeo/local/lib/libgeotiff.a
-- Installing: /work/osgeo/local/lib/libgeotiff.so
-- Removed runtime path from "/work/osgeo/local/lib/libgeotiff.so"
-- Installing: /work/osgeo/local/bin/makegeo
-- Removed runtime path from "/work/osgeo/local/bin/makegeo"
-- Installing: /work/osgeo/local/bin/listgeo
-- Removed runtime path from "/work/osgeo/local/bin/listgeo"
-- Installing: /work/osgeo/local/bin/applygeo
-- Removed runtime path from "/work/osgeo/local/bin/applygeo"
-- Installing: /work/osgeo/local/bin/geotifcp
-- Removed runtime path from "/work/osgeo/local/bin/geotifcp"



More information about the Geotiff mailing list