changeset 2550:1a69a4b622eb

finished beatifying cmake scripts
author Vladimir S. FONOV <vladimir.fonov@gmail.com>
date Thu, 08 Dec 2011 18:35:49 -0500
parents dcef05d4c2e2
children 3fe122bac48b
files CMakeLists.txt progs/CMakeLists.txt
diffstat 2 files changed, 65 insertions(+), 66 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,11 +30,6 @@
 
 OPTION(BUILD_MINC2      "Support minc2 file format" ON)
 
-# yes, build as minc2
-IF(BUILD_MINC2)
-  SET(MINC2 "1")
-ENDIF(BUILD_MINC2)
-
 ADD_DEFINITIONS(-DHAVE_CONFIG_H)
 
 # aliases
@@ -50,15 +45,15 @@
 CHECK_INCLUDE_FILES(float.h HAVE_FLOAT_H)
 
 # netcdf and HDF5
-SET(NETCDF_FIND_REQUIRED TRUE)
-FIND_PACKAGE(NETCDF)
+FIND_PACKAGE(NETCDF REQUIRED)
 INCLUDE_DIRECTORIES( ${NETCDF_INCLUDE_DIR} )
 
 IF(BUILD_MINC2)
-  SET(HDF5_FIND_REQUIRED TRUE)
+  FIND_PACKAGE(HDF5 REQUIRED)
+  FIND_PACKAGE(ZLIB REQUIRED)
+  SET(MINC2 "1")
   INCLUDE_DIRECTORIES( ${HDF5_INCLUDE_DIR} )
 ENDIF(BUILD_MINC2)
-FIND_PACKAGE(HDF5)
 
 # config files for build
 CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/config.h.cmake ${CMAKE_SOURCE_DIR}/config.h)
@@ -119,6 +114,9 @@
   SET(minc_LIB_SRCS ${minc1_LIB_SRCS} ${minc2_LIB_SRCS})
   SET(minc_LIB minc2)
   ADD_LIBRARY(minc2 STATIC ${minc_LIB_SRCS} )
+
+  TARGET_LINK_LIBRARIES(minc2 ${NETCDF_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARIES} m )
+
   INSTALL(TARGETS minc2 DESTINATION lib)
 
   INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h 
@@ -139,6 +137,7 @@
     SET(minc_LIB_SRCS ${minc1_LIB_SRCS} )
     SET(minc_LIB minc)
     ADD_LIBRARY(minc STATIC ${minc1_LIB_SRCS} )
+    TARGET_LINK_LIBRARIES(minc ${NETCDF_LIBRARY} )
     INSTALL(TARGETS minc DESTINATION lib)
 
     INSTALL(FILES libsrc/minc.h libsrc/ParseArgv.h 
@@ -200,10 +199,13 @@
   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})
+  SET( volume_io_LIB volume_io2)
+
 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})
+  SET( volume_io_LIB volume_io)
 ENDIF(BUILD_MINC2)
 
 INSTALL(FILES volume_io/Include/volume_io/alloc.h
--- a/progs/CMakeLists.txt
+++ b/progs/CMakeLists.txt
@@ -26,20 +26,45 @@
 ADD_EXECUTABLE(mincaverage mincaverage/mincaverage.c)
 
 IF(BISON_FOUND AND FLEX_FOUND)
+  include_directories(${CMAKE_CURRENT_BINARY_DIR} minccalc)
+  
+  BISON_TARGET(gram ${CMAKE_CURRENT_SOURCE_DIR}/minccalc/gram.y ${CMAKE_CURRENT_BINARY_DIR}/gram.c COMPILE_FLAGS "--debug")
+  FLEX_TARGET(lex ${CMAKE_CURRENT_SOURCE_DIR}/minccalc/lex.l ${CMAKE_CURRENT_BINARY_DIR}/lex.c  )
+  #ADD_FLEX_BISON_DEPENDENCY(gram lex)
 
-  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(minccalc 
+                  minccalc/minccalc.c
+                  minccalc/eval.c
+                  minccalc/ident.c
+                  minccalc/node.c
+                  minccalc/optim.c
+                  minccalc/scalar.c
+                  minccalc/sym.c
+                  minccalc/vector.c
+                  ${FLEX_lex_OUTPUTS}
+                  ${BISON_gram_OUTPUTS}
+                 )
+
+  TARGET_LINK_LIBRARIES(minccalc ${FLEX_LIBRARIES})
+
+  INSTALL( TARGETS minccalc  DESTINATION bin)
+
+  include_directories(${CMAKE_CURRENT_BINARY_DIR} mincgen)
+  BISON_TARGET(ncgentab ${CMAKE_CURRENT_SOURCE_DIR}/mincgen/ncgentab.y ${CMAKE_CURRENT_BINARY_DIR}/ncgentab.c)
+  FLEX_TARGET(ncgenyy ${CMAKE_CURRENT_SOURCE_DIR}/mincgen/ncgenyy.l ${CMAKE_CURRENT_BINARY_DIR}/ncgenyy.c)
+  #ADD_FLEX_BISON_DEPENDENCY(ncgenyy ncgentab)
+
+  ADD_EXECUTABLE(mincgen mincgen/main.c
+                            ${BISON_ncgentab_OUTPUTS}
+                            ${FLEX_ncgenyy_OUTPUTS}
+                            mincgen/escapes.c
+                            mincgen/genlib.c
+                            mincgen/getfill.c
+                            mincgen/init.c
+                            mincgen/load.c)
+  INSTALL( TARGETS mincgen    DESTINATION bin)
+
+  TARGET_LINK_LIBRARIES(mincgen ${FLEX_LIBRARIES})
 
 ENDIF(BISON_FOUND AND FLEX_FOUND)
 
@@ -55,23 +80,6 @@
 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)
-  INSTALL( TARGETS mincgen    DESTINATION bin)
-
-ENDIF(BISON_FOUND AND FLEX_FOUND)
-
 ADD_EXECUTABLE(mincinfo mincinfo/mincinfo.c)
 ADD_EXECUTABLE(minclookup minclookup/minclookup.c)
 ADD_EXECUTABLE(mincmakescalar mincmakescalar/mincmakescalar.c)
@@ -82,7 +90,7 @@
 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_io_LIB} ${minc_LIB})
 
 ADD_EXECUTABLE(mincreshape mincreshape/mincreshape.c
                               mincreshape/copy_data.c)
@@ -95,40 +103,20 @@
                             Proglib/convert_origin_to_start.c)
 
 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)
+TARGET_LINK_LIBRARIES(voxeltoworld ${volume_io_LIB} ${minc_LIB})
 
 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)
+TARGET_LINK_LIBRARIES(worldtovoxel ${volume_io_LIB} ${minc_LIB})
 
 
 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)
+TARGET_LINK_LIBRARIES(transformtags ${volume_io_LIB} ${minc_LIB})
 
 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)
+TARGET_LINK_LIBRARIES(xfmconcat ${volume_io_LIB} ${minc_LIB})
 
 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)
+TARGET_LINK_LIBRARIES(xfminvert ${volume_io_LIB} ${minc_LIB})
 
 # install progs
 INSTALL(TARGETS
@@ -166,7 +154,16 @@
    mincdiff/mincdiff  
    mincedit/mincedit  
    mincheader/mincheader  
-   minchistory/minchistory  
    mincpik/mincpik  
    mincview/mincview
+   PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ  WORLD_EXECUTE WORLD_READ
    DESTINATION bin )
+
+
+configure_file(minchistory/minchistory.in ${CMAKE_CURRENT_BINARY_DIR}/minchistory @ONLY)
+add_custom_target(minchistory chmod +x ${CMAKE_CURRENT_BINARY_DIR}/minchistory DEPENDS minchistory/minchistory.in)
+
+INSTALL(FILES
+  ${CMAKE_CURRENT_BINARY_DIR}/minchistory
+  PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ  WORLD_EXECUTE WORLD_READ
+   DESTINATION bin )