changeset 2549:dcef05d4c2e2

Beautifying cmake files
author Vladimir S. FONOV <vladimir.fonov@gmail.com>
date Thu, 08 Dec 2011 17:25:35 -0500
parents 3f3e9cc93eee
children 1a69a4b622eb
files CMakeLists.txt conversion/CMakeLists.txt progs/CMakeLists.txt
diffstat 3 files changed, 232 insertions(+), 145 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,20 +28,18 @@
 SET(PACKAGE_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
 SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
 
+OPTION(BUILD_MINC2      "Support minc2 file format" ON)
 
 # yes, build as minc2
-SET(MINC2 "1")
+IF(BUILD_MINC2)
+  SET(MINC2 "1")
+ENDIF(BUILD_MINC2)
+
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
 # aliases
 SET(VERSION "${PACKAGE_VERSION}")
 
-# progs needed to build
-#SET(FLEX_FIND_REQUIRED)
-#SET(BISON_FIND_REQUIRED)
-#FIND_PACKAGE(BISON)
-#FIND_PACKAGE(FLEX)
-
 # check for prereqs
 INCLUDE(CheckFunctionExists)
 
@@ -53,10 +51,14 @@
 
 # netcdf and HDF5
 SET(NETCDF_FIND_REQUIRED TRUE)
-SET(HDF5_FIND_REQUIRED TRUE)
+FIND_PACKAGE(NETCDF)
+INCLUDE_DIRECTORIES( ${NETCDF_INCLUDE_DIR} )
+
+IF(BUILD_MINC2)
+  SET(HDF5_FIND_REQUIRED TRUE)
+  INCLUDE_DIRECTORIES( ${HDF5_INCLUDE_DIR} )
+ENDIF(BUILD_MINC2)
 FIND_PACKAGE(HDF5)
-FIND_PACKAGE(NETCDF)
-INCLUDE_DIRECTORIES( ${NETCDF_INCLUDE_DIR} ${HDF5_INCLUDE_DIR} )
 
 # config files for build
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_SOURCE_DIR}/config.h)
@@ -68,10 +70,16 @@
 INCLUDE_DIRECTORIES(
    ${CMAKE_CURRENT_SOURCE_DIR}
    ${CMAKE_SOURCE_DIR}/libsrc
-   ${CMAKE_SOURCE_DIR}/libsrc2
    ${CMAKE_SOURCE_DIR}/volume_io/Include
    )
 
+IF(BUILD_MINC2)
+  INCLUDE_DIRECTORIES(
+   ${CMAKE_SOURCE_DIR}/libsrc2
+   )
+ENDIF(BUILD_MINC2)
+
+
 # some variables
 SET(minc1_LIB_SRCS
    libsrc/ParseArgv.c
@@ -105,26 +113,52 @@
    libsrc2/volume.c
    )
 
+SET(minc_LIB minc)
+
+IF(BUILD_MINC2)
+  SET(minc_LIB_SRCS ${minc1_LIB_SRCS} ${minc2_LIB_SRCS})
+  SET(minc_LIB minc2)
+  ADD_LIBRARY(minc2 STATIC ${minc_LIB_SRCS} )
+  INSTALL(TARGETS minc2 DESTINATION lib)
+
+  INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h 
+    libsrc/voxel_loop.h 
+    libsrc/nd_loop.h
+    libsrc/time_stamp.h
+    libsrc/minc_compat.h
+    volume_io/Include/volume_io.h
+    libsrc2/minc2.h
+    libsrc/minc_simple.h
+    DESTINATION include
+    )
+
+  SET_TARGET_PROPERTIES(minc2 PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ELSE(BUILD_MINC2)
+
+    SET(minc_LIB_SRCS ${minc1_LIB_SRCS} )
+    SET(minc_LIB minc)
+    ADD_LIBRARY(minc STATIC ${minc1_LIB_SRCS} )
+    INSTALL(TARGETS minc DESTINATION lib)
+
+    INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h 
+      libsrc/voxel_loop.h 
+      libsrc/nd_loop.h
+      libsrc/time_stamp.h
+      libsrc/minc_compat.h
+      volume_io/Include/volume_io.h
+      libsrc/minc_simple.h
+      DESTINATION include
+      )
+
+    SET_TARGET_PROPERTIES(minc PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+
+ENDIF(BUILD_MINC2)
 
 # build the main minc2 library
-ADD_LIBRARY(minc2 STATIC ${minc1_LIB_SRCS} ${minc2_LIB_SRCS})
-INSTALL(TARGETS minc2 DESTINATION lib)
-INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h 
-   libsrc/voxel_loop.h 
-   libsrc/nd_loop.h
-   libsrc/time_stamp.h
-   libsrc/minc_compat.h
-   volume_io/Include/volume_io.h
-   libsrc2/minc2.h
-   libsrc/minc_simple.h
-   DESTINATION include
-   )
-
-SET_TARGET_PROPERTIES(minc2 PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
-
 
 # volume_io2
-SET(volume_io2_LIB_SRCS
+SET(volume_io_LIB_SRCS
    volume_io/Geometry/colour.c
    volume_io/Geometry/colour_def.c
    volume_io/Geometry/gaussian.c
@@ -161,9 +195,17 @@
    volume_io/Volumes/volumes.c
    )
 
-# build and install volume_io2 library
-ADD_LIBRARY(volume_io2 STATIC ${volume_io2_LIB_SRCS})
-INSTALL(TARGETS volume_io2 DESTINATION lib)
+IF(BUILD_MINC2)
+  # build and install volume_io2 library
+  ADD_LIBRARY(volume_io2 STATIC ${volume_io_LIB_SRCS})
+  INSTALL(TARGETS volume_io2 DESTINATION lib)
+  SET_TARGET_PROPERTIES(volume_io2 PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+ELSE(BUILD_MINC2)
+  ADD_LIBRARY(volume_io STATIC ${volume_io_LIB_SRCS})
+  INSTALL(TARGETS volume_io DESTINATION lib)
+  SET_TARGET_PROPERTIES(volume_io PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
+ENDIF(BUILD_MINC2)
+
 INSTALL(FILES volume_io/Include/volume_io/alloc.h
 	volume_io/Include/volume_io/arrays.h 
 	volume_io/Include/volume_io/basic.h 
@@ -182,13 +224,9 @@
 	volume_io/Include/volume_io/volume_cache.h
    DESTINATION include/volume_io)
 
-SET_TARGET_PROPERTIES(volume_io2 PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${CPACK_PACKAGE_VERSION_MAJOR})
-
-
 # now build the progs subdir
 ADD_SUBDIRECTORY( progs )
 
-
 # and then the conversion subdir
 ADD_SUBDIRECTORY( conversion )
 
--- a/conversion/CMakeLists.txt
+++ b/conversion/CMakeLists.txt
@@ -2,8 +2,13 @@
 #
 # Andrew Janke - a.janke@gmail.com
 
-LINK_DIRECTORIES(../)
-LINK_LIBRARIES( minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} )
+#LINK_DIRECTORIES()
+IF(BUILD_MINC2)
+  LINK_LIBRARIES( minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} )
+ELSE(BUILD_MINC2)
+  LINK_LIBRARIES( minc ${NETCDF_LIBRARY} )
+ENDIF(BUILD_MINC2)
+
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
 
@@ -19,9 +24,8 @@
    Acr_nema/group.c
    Acr_nema/message.c
    Acr_nema/value_repr.c)
-#INSTALL(TARGETS acr_nema DESTINATION lib)
 
-ADD_EXECUTABLE(../dcm2mnc
+ADD_EXECUTABLE(dcm2mnc
    dcm2mnc/dcm2mnc.c
    dcm2mnc/dicom_to_minc.c
    dcm2mnc/siemens_to_dicom.c
@@ -29,49 +33,60 @@
    dcm2mnc/minc_file.c
    dcm2mnc/progress.c
    dcm2mnc/string_to_filename.c)
-TARGET_LINK_LIBRARIES(../dcm2mnc acr_nema )
+TARGET_LINK_LIBRARIES(dcm2mnc acr_nema )
 
-ADD_EXECUTABLE(../ecattominc
+ADD_EXECUTABLE(ecattominc
    ecattominc/ecattominc.c
    ecattominc/insertblood.c
    ecattominc/ecat_file.c
    ecattominc/machine_indep.c
    )
-ADD_EXECUTABLE(../minctoecat
+ADD_EXECUTABLE(minctoecat
    minctoecat/minctoecat.c
    minctoecat/ecat_write.c
    minctoecat/machine_indep.c
    )
-TARGET_LINK_LIBRARIES(../minctoecat volume_io2 minc2)
 
-ADD_EXECUTABLE(../mnc2nii
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(minctoecat volume_io2 minc2)
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(minctoecat volume_io minc)
+ENDIF(BUILD_MINC2)
+
+
+ADD_EXECUTABLE(mnc2nii
    nifti1/mnc2nii.c
    nifti1/nifti1_io.c
    nifti1/znzlib.c
    )
-ADD_EXECUTABLE(../nii2mnc
+ADD_EXECUTABLE(nii2mnc
    nifti1/nii2mnc.c
    nifti1/nifti1_io.c
    nifti1/znzlib.c
    )
-TARGET_LINK_LIBRARIES(../nii2mnc volume_io2 minc2)
 
-ADD_EXECUTABLE(../upet2mnc
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(nii2mnc volume_io2 minc2)
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(nii2mnc volume_io minc)
+ENDIF(BUILD_MINC2)
+
+ADD_EXECUTABLE(upet2mnc
    micropet/upet2mnc.c
    )
 
-ADD_EXECUTABLE(../vff2mnc
+ADD_EXECUTABLE(vff2mnc
    vff2mnc/vff2mnc.c
    )
 
 
 # install progs
 INSTALL(TARGETS
-   ../dcm2mnc
-   ../ecattominc
-   ../minctoecat
-   ../mnc2nii
-   ../nii2mnc
-   ../upet2mnc
-   ../vff2mnc
+   dcm2mnc
+   ecattominc
+   minctoecat
+   mnc2nii
+   nii2mnc
+   upet2mnc
+   vff2mnc
    DESTINATION bin)
--- a/progs/CMakeLists.txt
+++ b/progs/CMakeLists.txt
@@ -2,131 +2,165 @@
 #
 # Andrew Janke - a.janke@gmail.com
 
-#SET(CMAKE_MODULE_PATH "../cmake-modules")
+#SET(CMAKE_MODULE_PATH "cmake-modules")
+
+#LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/..)
+INCLUDE_DIRECTORIES(Proglib)
 
-LINK_DIRECTORIES(../)
-INCLUDE_DIRECTORIES(Proglib)
-LINK_LIBRARIES( minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} )
+IF(BUILD_MINC2)
+  LINK_LIBRARIES( minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} )
+ELSE(BUILD_MINC2)
+  LINK_LIBRARIES( minc ${NETCDF_LIBRARY} )
+ENDIF(BUILD_MINC2)
+
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
-SET(BISON_FIND_REQUIRED)
-SET(FLEX_FIND_REQUIRED)
+#SET(BISON_FIND_REQUIRED)
+#SET(FLEX_FIND_REQUIRED)
+
 FIND_PACKAGE(BISON)
 FIND_PACKAGE(FLEX)
 
 # all the progs
-ADD_EXECUTABLE(../invert_raw_image mincview/invert_raw_image.c)
-ADD_EXECUTABLE(../mincaverage mincaverage/mincaverage.c)
+ADD_EXECUTABLE(invert_raw_image mincview/invert_raw_image.c)
+ADD_EXECUTABLE(mincaverage mincaverage/mincaverage.c)
+
+IF(BISON_FOUND AND FLEX_FOUND)
 
-BISON_TARGET(../minccalc minccalc/gram.y minccalc/gram.c COMPILE_FLAGS "--debug")
-FLEX_TARGET(../minccalc minccalc/lex.l minccalc/lex.c)
-ADD_EXECUTABLE(../minccalc minccalc/minccalc.c
-                           minccalc/gram.c
-                           minccalc/eval.c
-                           minccalc/ident.c
-                           minccalc/lex.c
-                           minccalc/node.c
-                           minccalc/optim.c
-                           minccalc/scalar.c
-                           minccalc/sym.c
-                           minccalc/vector.c)
+  BISON_TARGET(minccalc minccalc/gram.y minccalc/gram.c COMPILE_FLAGS "--debug")
+  FLEX_TARGET(minccalc minccalc/lex.l minccalc/lex.c)
+  ADD_EXECUTABLE(minccalc minccalc/minccalc.c
+                            minccalc/gram.c
+                            minccalc/eval.c
+                            minccalc/ident.c
+                            minccalc/lex.c
+                            minccalc/node.c
+                            minccalc/optim.c
+                            minccalc/scalar.c
+                            minccalc/sym.c
+                            minccalc/vector.c)
+  INSTALL( TARGETS minccalc    DESTINATION bin)
 
-ADD_EXECUTABLE(../mincconcat mincconcat/mincconcat.c)
-ADD_EXECUTABLE(../mincconvert mincconvert/mincconvert.c)
-ADD_EXECUTABLE(../minccopy minccopy/minccopy.c)
+ENDIF(BISON_FOUND AND FLEX_FOUND)
 
-ADD_EXECUTABLE(../mincdump mincdump/mincdump.c
+ADD_EXECUTABLE(mincconcat mincconcat/mincconcat.c)
+ADD_EXECUTABLE(mincconvert mincconvert/mincconvert.c)
+ADD_EXECUTABLE(minccopy minccopy/minccopy.c)
+
+ADD_EXECUTABLE(mincdump mincdump/mincdump.c
                             mincdump/vardata.c
                             mincdump/dumplib.c)
                             
-ADD_EXECUTABLE(../mincexample1 mincexample/mincexample1.c)
-ADD_EXECUTABLE(../mincexample2 mincexample/mincexample2.c)
-ADD_EXECUTABLE(../mincexpand mincexpand/mincexpand.c)
-ADD_EXECUTABLE(../mincextract mincextract/mincextract.c)
+ADD_EXECUTABLE(mincexample1 mincexample/mincexample1.c)
+ADD_EXECUTABLE(mincexample2 mincexample/mincexample2.c)
+ADD_EXECUTABLE(mincexpand mincexpand/mincexpand.c)
+ADD_EXECUTABLE(mincextract mincextract/mincextract.c)
+
+IF(BISON_FOUND AND FLEX_FOUND)
 
-BISON_TARGET(../mincgen mincgen/ncgentab.y mincgen/nccentab.c)
-FLEX_TARGET(../mincgen mincgen/ncgenyy.l mincgen/ncgenyy.c)
-ADD_EXECUTABLE(../mincgen mincgen/main.c
-                          mincgen/escapes.c
-                          mincgen/genlib.c
-                          mincgen/getfill.c
-                          mincgen/init.c
-                          mincgen/load.c
-                          mincgen/ncgentab.c
-                          mincgen/ncgenyy.c)
+  BISON_TARGET(mincgen mincgen/ncgentab.y mincgen/nccentab.c)
+  FLEX_TARGET(mincgen mincgen/ncgenyy.l mincgen/ncgenyy.c)
+  ADD_EXECUTABLE(mincgen mincgen/main.c
+                            mincgen/escapes.c
+                            mincgen/genlib.c
+                            mincgen/getfill.c
+                            mincgen/init.c
+                            mincgen/load.c
+                            mincgen/ncgentab.c
+                            mincgen/ncgenyy.c)
+  INSTALL( TARGETS mincgen    DESTINATION bin)
 
-ADD_EXECUTABLE(../mincinfo mincinfo/mincinfo.c)
-ADD_EXECUTABLE(../minclookup minclookup/minclookup.c)
-ADD_EXECUTABLE(../mincmakescalar mincmakescalar/mincmakescalar.c)
-ADD_EXECUTABLE(../mincmakevector mincmakevector/mincmakevector.c)
-ADD_EXECUTABLE(../mincmath mincmath/mincmath.c)
-ADD_EXECUTABLE(../minc_modify_header minc_modify_header/minc_modify_header.c)
+ENDIF(BISON_FOUND AND FLEX_FOUND)
 
-ADD_EXECUTABLE(../mincresample mincresample/mincresample.c
+ADD_EXECUTABLE(mincinfo mincinfo/mincinfo.c)
+ADD_EXECUTABLE(minclookup minclookup/minclookup.c)
+ADD_EXECUTABLE(mincmakescalar mincmakescalar/mincmakescalar.c)
+ADD_EXECUTABLE(mincmakevector mincmakevector/mincmakevector.c)
+ADD_EXECUTABLE(mincmath mincmath/mincmath.c)
+ADD_EXECUTABLE(minc_modify_header minc_modify_header/minc_modify_header.c)
+
+ADD_EXECUTABLE(mincresample mincresample/mincresample.c
                                mincresample/resample_volumes.c
                                Proglib/convert_origin_to_start.c)
-TARGET_LINK_LIBRARIES(../mincresample volume_io2)
+TARGET_LINK_LIBRARIES(mincresample volume_io2)
 
-ADD_EXECUTABLE(../mincreshape mincreshape/mincreshape.c
+ADD_EXECUTABLE(mincreshape mincreshape/mincreshape.c
                               mincreshape/copy_data.c)
 
-ADD_EXECUTABLE(../mincstats mincstats/mincstats.c)
-ADD_EXECUTABLE(../minctoraw minctoraw/minctoraw.c)
-ADD_EXECUTABLE(../mincwindow mincwindow/mincwindow.c)
+ADD_EXECUTABLE(mincstats mincstats/mincstats.c)
+ADD_EXECUTABLE(minctoraw minctoraw/minctoraw.c)
+ADD_EXECUTABLE(mincwindow mincwindow/mincwindow.c)
 
-ADD_EXECUTABLE(../rawtominc rawtominc/rawtominc.c
+ADD_EXECUTABLE(rawtominc rawtominc/rawtominc.c
                             Proglib/convert_origin_to_start.c)
 
-ADD_EXECUTABLE(../voxeltoworld coordinates/voxeltoworld.c)
-TARGET_LINK_LIBRARIES(../voxeltoworld volume_io2 minc2)
+ADD_EXECUTABLE(voxeltoworld coordinates/voxeltoworld.c)
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(voxeltoworld volume_io2 )
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(voxeltoworld volume_io )
+ENDIF(BUILD_MINC2)
 
-ADD_EXECUTABLE(../worldtovoxel coordinates/worldtovoxel.c)
-TARGET_LINK_LIBRARIES(../worldtovoxel volume_io2 minc2)
+ADD_EXECUTABLE(worldtovoxel coordinates/worldtovoxel.c)
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(worldtovoxel volume_io2 )
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(worldtovoxel volume_io )
+ENDIF(BUILD_MINC2)
 
 
-ADD_EXECUTABLE(../transformtags xfm/transformtags.c)
-TARGET_LINK_LIBRARIES(../transformtags volume_io2 minc2)
+ADD_EXECUTABLE(transformtags xfm/transformtags.c)
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(transformtags volume_io2 )
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(transformtags volume_io )
+ENDIF(BUILD_MINC2)
 
-ADD_EXECUTABLE(../xfmconcat xfm/xfmconcat.c)
-TARGET_LINK_LIBRARIES(../xfmconcat volume_io2 minc2)
+ADD_EXECUTABLE(xfmconcat xfm/xfmconcat.c)
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(xfmconcat volume_io2 )
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(xfmconcat volume_io )
+ENDIF(BUILD_MINC2)
 
-ADD_EXECUTABLE(../xfminvert xfm/xfminvert.c)
-TARGET_LINK_LIBRARIES(../xfminvert volume_io2 minc2)
+ADD_EXECUTABLE(xfminvert xfm/xfminvert.c)
+IF(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(xfminvert volume_io2 )
+ELSE(BUILD_MINC2)
+  TARGET_LINK_LIBRARIES(xfminvert volume_io )
+ENDIF(BUILD_MINC2)
 
 # install progs
 INSTALL(TARGETS
-   ../invert_raw_image 
-   ../mincaverage
-   ../minccalc
-   ../mincconcat
-   ../mincconvert
-   ../minccopy
-   ../mincdump
-#   ../mincexample1
-#   ../mincexample2
-   ../mincexpand
-   ../mincextract
-   ../mincgen
-   ../mincinfo
-   ../minclookup
-   ../mincmakescalar
-   ../mincmakevector
-   ../mincmath
-   ../minc_modify_header
-   ../mincresample
-   ../mincreshape
-   ../mincstats
-   ../minctoraw
-   ../mincwindow
-   ../rawtominc
-   ../voxeltoworld
-   ../worldtovoxel
-   ../transformtags
-   ../xfmconcat
-   ../xfminvert
+   invert_raw_image 
+   mincaverage
+   mincconcat
+   mincconvert
+   minccopy
+   mincdump
+#   mincexample1
+#   mincexample2
+   mincexpand
+   mincextract
+   mincinfo
+   minclookup
+   mincmakescalar
+   mincmakevector
+   mincmath
+   minc_modify_header
+   mincresample
+   mincreshape
+   mincstats
+   minctoraw
+   mincwindow
+   rawtominc
+   voxeltoworld
+   worldtovoxel
+   transformtags
+   xfmconcat
+   xfminvert
    DESTINATION bin)
 
-
 # perl and shell scripts
 INSTALL(FILES
    mincdiff/mincdiff