Changeset 1811 for trunk


Ignore:
Timestamp:
04/02/12 23:07:45 (4 months ago)
Author:
Freddie Akeroyd
Message:
  • Some general CMake code refactoring
  • Improve locating of external libraries
  • Add in more OS function tests and create nxconfig.h

Refs #327

Location:
trunk
Files:
3 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/CMakeLists.txt

    r1794 r1811  
    4242 
    4343set(HDF5_SEARCH "" CACHE PATH "Where to search for HDF5") 
    44 if (HDF5_SEARCH) 
    45     set(ENV{HDF5_ROOT} "${HDF5_SEARCH}")    # findHDF5 uses HDF5_ROOT environment variable 
    46 endif (HDF5_SEARCH) 
    4744 
    4845set(HDF4_SEARCH "" CACHE PATH "Where to search for HDF4") 
    4946 
    50 function(install_pdb target) 
    51 #       set (OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}) 
    52         set (OUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/Release) 
    53         get_target_property (OUT_NAME ${target} OUTPUT_NAME) 
    54         get_filename_component (OUT_BASE_NAME ${OUT_NAME} NAME_WE) 
    55 #       set(PDB_FILE ${OUT_DIR}/${OUT_BASE_NAME}${CMAKE_DEBUG_POSTFIX}.pdb) 
    56         set(PDB_FILE ${OUT_DIR}/${OUT_BASE_NAME}.pdb) 
    57         install (FILES ${PDB_FILE} DESTINATION bin COMPONENT Runtime)   
    58 endfunction() 
     47set(MXML_SEARCH "" CACHE PATH "Where to search for MXML") 
     48 
     49set(SZIP_SEARCH "" CACHE PATH "Where to search for SZIP") 
     50 
     51#CMake includes  
     52 
     53include(CheckCCompilerFlag) 
     54include(CheckCXXCompilerFlag) 
     55include(CheckTypeSize) 
     56include(CheckFunctionExists) 
     57include(CheckIncludeFile) 
     58include(CheckIncludeFiles) 
     59include(CheckLibraryExists) 
     60 
     61include(cmake_include/Utilities.cmake) 
     62include(cmake_include/FindPython.cmake) 
     63include(cmake_include/FindCBFLib.cmake) 
     64include(cmake_include/FindJava.cmake) 
     65include(cmake_include/FindJNI.cmake) 
     66include(cmake_include/FindGuile.cmake) 
     67include(cmake_include/FindMZScheme.cmake) 
     68include(cmake_include/FindHDF4.cmake) 
     69include(cmake_include/FindHDF5.cmake) 
     70include(cmake_include/FindIDL.cmake) 
     71include(cmake_include/FindMXML.cmake) 
     72include(cmake_include/FindOpenGenie.cmake) 
     73include(cmake_include/FindDocbookUtils.cmake) 
     74include(cmake_include/FindSZIP.cmake) 
     75include(cmake_include/FindAnt.cmake) 
     76 
     77CHECK_TYPE_SIZE(int SIZEOF_INT) 
     78CHECK_TYPE_SIZE("long int" SIZEOF_LONG_INT) 
     79CHECK_TYPE_SIZE("long long int" SIZEOF_LONG_LONG_INT) 
     80CHECK_TYPE_SIZE(size_t SIZEOF_SIZE_T) 
     81 
     82CHECK_FUNCTION_EXISTS(ftime HAVE_FTIME) 
     83CHECK_FUNCTION_EXISTS(tzset HAVE_TZSET) 
     84 
     85CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H) 
     86CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H) 
     87#if (WIN32) 
     88ADD_DEFINITIONS(-DPRINTF_INT64="lld" -DPRINTF_UINT64="llu") 
     89#endif() 
     90 
     91if(UNIX) 
     92    CHECK_LIBRARY_EXISTS(dl dlopen "" HAVE_LIBDL) 
     93    CHECK_LIBRARY_EXISTS(pthread pthread_open "" HAVE_LIBPTHREAD) 
     94endif(UNIX) 
    5995 
    6096#find_package(HDF5 REQUIRED) 
    61 find_package(HDF5) 
     97#find_package(HDF5) 
    6298find_package(JPEG) 
    6399find_package(XMLRPC) 
     
    68104find_package(TCL) 
    69105find_package(LATEX) 
    70  
    71 if(UNIX) 
    72     set(HDF5_SEARCH_DEFAULT "/usr" "/usr/local" "/usr/local/hdf5" "/sw") 
    73         set(HD_NAMES df) 
    74         set(HM_NAMES mfhdf) 
    75 endif(UNIX) 
    76 if(WIN32) 
    77     set(HDF5_SEARCH_DEFAULT "C:/InstallKits/HDF5-1.8.6-win64") 
    78     set(HDF4_SEARCH_DEFAULT "C:/InstallKits/HDF4.2.6_win_x64") 
    79         set(HD_NAMES hd426m hd425m) 
    80         set(HM_NAMES hm426m hm425m) 
    81         set(CMAKE_DEBUG_POSTFIX "D") 
    82 endif(WIN32) 
    83  
    84 find_library(MY_HDF5_DLL NAMES hdf5dll HINTS ${HDF5_SEARCH} ENV HDF5_ROOT PATHS ${HDF5_SEARCH_DEFAULT} PATH_SUFFIXES dll lib DOC "location of hdf5 dll") 
    85 find_library(MY_HDF5 NAMES hdf5 HINTS ${HDF5_SEARCH} ENV HDF5_ROOT PATHS ${HDF5_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of hdf5 lib") 
    86  
    87 find_library(MY_HD_DLL NAMES ${HD_NAMES} HINTS ${HDF4_SEARCH} ENV HDF4_ROOT PATHS ${HDF4_SEARCH_DEFAULT} PATH_SUFFIXES dll lib DOC "location of hd dll") 
    88 find_library(MY_HM_DLL NAMES ${HM_NAMES} HINTS ${HDF4_SEARCH} ENV HDF4_ROOT PATHS ${HDF4_SEARCH_DEFAULT} PATH_SUFFIXES dll lib DOC "location of hm dll") 
    89  
    90 if (WIN32) 
    91     if (HDF5_SEARCH) 
    92         set(HDF5_STATIC_LIBRARIES ${HDF5_SEARCH}/lib/hdf5.lib ) 
    93         set(HDF5_SHARED_LIBRARIES ${HDF5_SEARCH}/dll/hdf5dll.lib ) 
    94     endif (HDF5_SEARCH) 
    95     if (HDF4_SEARCH) 
    96         set(HDF4_STATIC_LIBRARIES ${HDF4_SEARCH}/lib/hd426.lib ${HDF4_SEARCH}/lib/hm426.lib ) 
    97         set(HDF4_SHARED_LIBRARIES ${HDF4_SEARCH}/dll/hd426m.lib ${HDF4_SEARCH}/dll/hm426m.lib ) 
    98             set(HDF4_CPP "-I\"${HDF4_SEARCH}/include\" -DHDF4") 
    99             set(HDF4_FOUND YES) 
    100     endif (HDF4_SEARCH) 
    101 #       set(MXML_CPP "-DNXXML") 
    102 else(WIN32) 
    103     set(HDF5_STATIC_LIBRARIES ${HDF5_SEARCH}/lib/libhdf5.a ) 
    104     set(HDF5_SHARED_LIBRARIES ${HDF5_SEARCH}/lib/libhdf5.so ) 
    105 endif(WIN32) 
    106  
    107 #CMake includes  
    108  
    109 include(CheckCCompilerFlag) 
    110 include(CheckCXXCompilerFlag) 
    111 include(cmake_include/FindPython.cmake) 
    112 include(cmake_include/FindCBFLib.cmake) 
    113 include(cmake_include/FindJava.cmake) 
    114 include(cmake_include/FindJNI.cmake) 
    115 include(cmake_include/FindGuile.cmake) 
    116 include(cmake_include/FindMZScheme.cmake) 
    117 include(cmake_include/FindHDF4.cmake) 
    118 include(cmake_include/FindIDL.cmake) 
    119 include(cmake_include/FindMXML.cmake) 
    120 include(cmake_include/FindOpenGenie.cmake) 
    121 include(cmake_include/FindDocbookUtils.cmake) 
    122 include(cmake_include/FindSystemConfig.cmake) 
    123 include(cmake_include/FindSZIP.cmake) 
    124 include(cmake_include/FindAnt.cmake) 
     106find_package(ZLIB) 
    125107 
    126108#Find the libraries for the build. 
     
    134116find_library(HISTORY history) 
    135117 
    136  
    137118if(M) 
    138119   set(M_LINK "-lm") 
     
    169150#   these are needed if HDF5 1.8 has been instaleld with H5_USE_16_API_DEFAULT  
    170151  set(HDF5_API_DEFS "-DH5Acreate_vers=2 -DH5Aiterate_vers=2 -DH5Dcreate_vers=2 -DH5Dopen_vers=2 -DH5Eclear_vers=2 -DH5Eprint_vers=2 -DH5Epush_vers=2 -DH5Eset_auto_vers=2 -DH5Eget_auto_vers=2 -DH5Ewalk_vers=2 -DH5Gcreate_vers=2 -DH5Gopen_vers=2 -DH5Pget_filter_vers=2 -DH5Pget_filter_by_id_vers=2 -DH5Pinsert_vers=2 -DH5Pregister_vers=2 -DH5Rget_obj_type_vers=2 -DH5Tarray_create_vers=2 -DH5Tcommit_vers=2 -DH5Tget_array_dims_vers=2 -DH5Topen_vers=2") 
    171    set (HDF5_CPP "-DHDF5 -DH5_NO_DEPRECATED_SYMBOLS ${HDF5_API_DEFS}") 
     152  set (HDF5_CPP "-DHDF5 -DH5_NO_DEPRECATED_SYMBOLS ${HDF5_API_DEFS}") 
    172153endif (HDF5_FOUND) 
    173154 
     
    183164 
    184165#Use HDF4 in build 
    185 option (HAVE_HDF4  
    186         "We have the HDF4 libraries installed and would like to use them." OFF) 
    187  
    188 #Use HDF5 in build 
    189 if (HDF5_FOUND) 
    190 option (HAVE_HDF5  
    191         "We have the HDF5 libraries installed and would like to use them." ON) 
    192 endif(HDF5_FOUND) 
     166option (BUILD_HDF4  
     167        "Should I build HDF4 bindings?" OFF) 
     168 
     169option (BUILD_HDF5  
     170        "Should I build HDF4 bindings?" ON) 
    193171 
    194172#Use XML in build 
    195 option (HAVE_XML  
     173option (BUILD_XML  
    196174        "We have the XML libraries installed and would like to use them." ON) 
     175set(BUILD_MXML ${BUILD_XML}) 
    197176 
    198177#This is a MINGW build 
     
    208187endif (HAVE_MS_LIB) 
    209188 
     189create_have_vars(HDF4 HDF5 MXML) 
     190 
    210191#Include source files. 
    211192include_directories(${PROJECT_SOURCE_DIR}/include ${HDF5_INCLUDE_DIRS} ${HDF5_INCLUDE_DIR}) 
    212193 
    213 check_c_compiler_flag(-Wall C_HAS_ALL) 
    214 check_c_compiler_flag(-Wno-unused-variable C_HAS_NO_UNUSED_VARIABLE) 
    215 check_c_compiler_flag(-Wno-sign-compare C_HAS_NO_SIGN_COMPARE) 
    216 check_c_compiler_flag(-Wno-comment C_HAS_NO_COMMENT) 
    217  
    218 if (C_HAS_ALL) 
    219     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") 
    220 endif(C_HAS_ALL) 
    221  
    222 if (C_HAS_NO_UNUSED_VARIABLE) 
    223     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable") 
    224 endif(C_HAS_NO_UNUSED_VARIABLE) 
    225  
    226 if (C_HAS_NO_SIGN_COMPARE) 
    227     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-sign-compare") 
    228 endif(C_HAS_NO_SIGN_COMPARE) 
    229  
    230 if (C_HAS_NO_COMMENT) 
    231     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-comment") 
    232 endif(C_HAS_NO_COMMENT) 
    233  
    234 check_cxx_compiler_flag(-Wall CXX_HAS_ALL) 
    235 check_cxx_compiler_flag(-Wno-unused-variable CXX_HAS_NO_UNUSED_VARIABLE) 
    236 check_cxx_compiler_flag(-Wno-sign-compare CXX_HAS_NO_SIGN_COMPARE) 
    237 check_cxx_compiler_flag(-Wno-comment CXX_HAS_NO_COMMENT) 
    238  
    239 if (CXX_HAS_ALL) 
    240     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") 
    241 endif(CXX_HAS_ALL) 
    242  
    243 if (CXX_HAS_NO_UNUSED_VARIABLE) 
    244     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-variable") 
    245 endif(CXX_HAS_NO_UNUSED_VARIABLE) 
    246  
    247 if (CXX_HAS_NO_SIGN_COMPARE) 
    248     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-sign-compare") 
    249 endif(CXX_HAS_NO_SIGN_COMPARE) 
    250  
    251 if (CXX_HAS_NO_COMMENT) 
    252     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-comment") 
    253 endif(CXX_HAS_NO_COMMENT) 
    254  
    255 #We need to be able to check for Fortran F77/90 - but how do we do this? 
     194if (UNIX) 
     195    check_add_c_compiler_flags("-Wall -Wno-unused-variable -Wno-sign-compare -Wno-comment") 
     196    check_add_cxx_compiler_flags("-Wall -Wno-unused-variable -Wno-sign-compare -Wno-comment") 
     197endif(UNIX) 
     198 
    256199if (BUILD_FORTRAN_BINDINGS) 
    257200    enable_language(Fortran) 
     
    268211set(NX_INCLUDE "include/nexus") 
    269212 
    270 file(WRITE ${CMAKE_SOURCE_DIR}/include/nxconfig.h "/*A dummy config*/") 
    271  
     213configure_file("${CMAKE_SOURCE_DIR}/include/nxconfig_h_cmake.in" "${CMAKE_BINARY_DIR}/include/nxconfig.h" @ONLY) 
     214include_directories("${CMAKE_BINARY_DIR}/include") 
     215 
     216if(WIN32) 
    272217# warning 4820 is byte padding in structures 
    273218# warning 4996 is about using _strdup ratherthan strdup etc 
    274219# /W4 rather than /Wall 
    275220# /Zi to get pdb file in all configurations 
    276 set(NX_CFLAGS "/W4 /wd4820 /wd4996 /Zi") 
    277 set(NX_CPP -D_CRT_SECURE_NO_WARNINGS) 
     221    set(NX_CFLAGS "/W4 /wd4820 /wd4996 /Zi") 
     222    set(NX_CPP -D_CRT_SECURE_NO_WARNINGS) 
     223        set(CMAKE_DEBUG_POSTFIX "D") 
     224 
     225endif(WIN32) 
    278226 
    279227set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${NX_CFLAGS}") 
     
    300248#add_subdirectory (scripts) 
    301249add_subdirectory (test) 
    302 add_subdirectory (third_party) 
     250#add_subdirectory (third_party) 
    303251#add_subdirectory (vms) 
    304252#add_subdirectory (windows) 
    305253#add_subdirectory (Windows_extra) 
    306254 
    307 # CPack must always be last 
     255# 
     256# set CPack packaging options 
     257# 
    308258configure_file("${PROJECT_SOURCE_DIR}/CPackOptions.cmake.in"  
    309259                                "${PROJECT_BINARY_DIRECTORY}CPackOptions.cmake" 
    310260                                @ONLY) 
    311261set(CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIRECTORY}CPackOptions.cmake") 
     262set (CPACK_GENERATOR TGZ;ZIP) 
     263if(UNIX) 
     264    set (CPACK_GENERATOR ${CPACK_GENERATOR};DEB;RPM) 
     265    #set (CPACK_RPM_PACKAGE_PROVIDES "") 
     266endif(UNIX) 
     267if(WIN32) 
     268    set (CPACK_GENERATOR ${CPACK_GENERATOR};NSIS) 
     269endif(WIN32) 
     270if(APPLE) 
     271    set (CPACK_GENERATOR ${CPACK_GENERATOR};PackageMaker) 
     272endif(APPLE) 
     273# include of CPack must be last 
    312274include(CPack) 
  • trunk/CPackOptions.cmake.in

    r1794 r1811  
    1919SET(CPACK_SET_DESTDIR "ON") 
    2020 
    21 if(UNIX) 
    22     set (CPACK_GENERATOR ${CPACK_GENERATOR};STGZ;TGZ) 
    23 endif(UNIX) 
    24 if(LINUX) 
    25     set (CPACK_GENERATOR ${CPACK_GENERATOR};DEB;RPM) 
    26     set (CPACK_RPM_PACKAGE_RELEASE "1") 
    27     set (CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8") 
    28     #set (CPACK_RPM_PACKAGE_PROVIDES "") 
    29 endif(LINUX) 
    3021if(WIN32) 
    31 #    set (CPACK_GENERATOR ${CPACK_GENERATOR};NSIS) 
    3222        set(CPACK_BINARY_NSIS OFF) 
    3323#         set(CPACK_PACKAGE_ICON "${CMake_SOURCE_DIR}/Utilities/Release\\\\InstallIcon.bmp") 
     
    4232#   set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include \"${CMAKE_SOURCE_DIR}/nsis_uninstall.nsh\"") 
    4333endif(WIN32) 
    44 if(APPLE) 
    45     set (CPACK_GENERATOR ${CPACK_GENERATOR};PackageMaker) 
    46 endif(APPLE) 
    4734#set (CPACK_OUTPUT_CONFIG_FILE) 
    4835#set (CPACK_PACKAGE_EXECUTABLES) 
     
    5441#set (CPACK_SOURCE_IGNORE_FILES) 
    5542set(CPACK_RPM_COMPONENT_INSTALL ON) 
     43set (CPACK_RPM_PACKAGE_RELEASE "1") 
     44set (CPACK_RPM_PACKAGE_REQUIRES "python >= 2.5.0, cmake >= 2.8") 
    5645 
    5746#cpack_add_component(Runtime 
  • trunk/applications/NXtranslate/CMakeLists.txt

    r1723 r1811  
    3939#add_subdirectory ($(GENIESUBDIR) 
    4040 
    41 add_definitions(-DIPNS_RETRIEVER -DFRM2_RETRIEVER -DTEXT_COLLIST_RETRIEVER -DTEXT_PLAIN_RETRIEVER -DTEXT_XML_RETRIEVER -DDYNAMIC_RETRIEVER -DSNS_HISTOGRAM_RETRIEVER -DLOOPY_RETRIEVER -DBINARY_RETRIEVER -DEDF_RETRIEVER -DSPEC_RETRIEVER) 
     41add_definitions(-DFRM2_RETRIEVER -DTEXT_COLLIST_RETRIEVER -DTEXT_PLAIN_RETRIEVER -DTEXT_XML_RETRIEVER -DDYNAMIC_RETRIEVER -DSNS_HISTOGRAM_RETRIEVER -DLOOPY_RETRIEVER -DBINARY_RETRIEVER -DEDF_RETRIEVER -DSPEC_RETRIEVER) 
    4242 
    4343 
    44 include_directories(. ${LIBXML2_INCLUDE_DIR} IPNS_CPP text_collist text_plain text_xml sns_histogram FRM2 loopy) 
     44include_directories(. ${LIBXML2_INCLUDE_DIR} text_collist text_plain text_xml sns_histogram FRM2 loopy) 
    4545 
    4646add_executable (nxtranslate attr.cpp main.cpp nexus_retriever.cpp  nexus_util.cpp node.cpp 
     
    5454                      ${DL_LINK} ${PTHREAD_LINK} ${TERMCAP_LINK} ${HDF4_LINK} 
    5555                      ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}  
    56                       ${LIBXML2_LIBRARIES} BinaryRetriever Edf FRM2 IPNSRunfile 
     56                      ${LIBXML2_LIBRARIES} BinaryRetriever Edf FRM2  
    5757                      Loopy SNShistogram Spec TextCollist TextPlain TextXML 
    5858                      ) 
  • trunk/cmake_include/FindHDF4.cmake

    r1636 r1811  
    2828 
    2929 
    30 find_library(DF df) 
    31 find_library(HDF4 mfhdf) 
     30# looks in HDF4_ROOT environment variable for hint 
     31# set HDF4_FOUND HDF4_DEFINITIONS HDF4_INCLUDE_DIRS  HDF4_LIBRARIES  HDF4_ROOT_DIR 
    3232 
    33 if(HDF4) 
    34     set(HDF4_LINK "-lmfhdf") 
    35     set(HDF4_CPP "-I/usr/include/hdf -DHDF4") 
    36     set(HDF4_FOUND 1) 
    37 endif(HDF4) 
     33if (WIN32) 
     34    set(HDF4_SEARCH_DEFAULT "C:/InstallKits/HDF4.2.6_win_x64") 
     35        set(HD_NAMES hd426m hd425m) 
     36        set(HM_NAMES hm426m hm425m) 
     37        find_library(HDF4_HD_LIBRARY NAMES ${HD_NAMES} HINTS ${HDF4_SEARCH} ENV HDF4_ROOT PATHS ${HDF4_SEARCH_DEFAULT} PATH_SUFFIXES dll lib DOC "location of hd dll") 
     38        find_library(HDF4_HM_LIBRARY NAMES ${HM_NAMES} HINTS ${HDF4_SEARCH} ENV HDF4_ROOT PATHS ${HDF4_SEARCH_DEFAULT} PATH_SUFFIXES dll lib DOC "location of hm dll") 
     39else(WIN32) 
     40    set(HDF4_SEARCH_DEFAULT "/usr" "/usr/local" "/usr/local/hdf4" "/sw") 
     41        set(HD_NAMES df) 
     42        set(HM_NAMES mfhdf) 
     43        find_library(HDF4_HD_LIBRARY NAMES ${HD_NAMES} HINTS ${HDF4_SEARCH} ENV HDF4_ROOT PATHS ${HDF4_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of hd dll") 
     44        find_library(HDF4_HM_LIBRARY NAMES ${HM_NAMES} HINTS ${HDF4_SEARCH} ENV HDF4_ROOT PATHS ${HDF4_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of hm dll") 
     45endif(WIN32) 
    3846 
     47mark_as_advanced(HDF4_HD_LIBRARY HDF4_HM_LIBRARY) 
    3948 
    40 if(DF) 
    41 set(DF_LINK "-ldf") 
    42 endif(DF) 
     49if (HDF4_HM_LIBRARY AND HDF4_HD_LIBRARY) 
     50    set(HDF4_SHARED_LIBRARIES ${HDF4_HM_LIBRARY} ${HDF4_HD_LIBRARY}) 
     51    set(HDF4_STATIC_LIBRARIES ${HDF4_HM_LIBRARY} ${HDF4_HD_LIBRARY}) 
     52    set(HDF4_LIBRARIES ${HDF4_SHARED_LIBRARIES}) 
     53    get_filename_component(_HDF4_LIBDIR ${HDF4_HM_LIBRARY} PATH) 
     54    set(HDF4_ROOT_DIR "${_HDF4_LIBDIR}/..") 
     55    set(HDF4_INCLUDE_DIRS "${HDF4_ROOT_DIR}/include") 
     56endif() 
     57 
     58set(HDF4_DEFINITIONS "") 
     59 
     60INCLUDE(FindPackageHandleStandardArgs) 
     61FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF4 DEFAULT_MSG HDF4_LIBRARIES HDF4_INCLUDE_DIRS) 
  • trunk/cmake_include/FindMXML.cmake

    r1636 r1811  
    2727#==================================================================== 
    2828 
    29 find_library(MXML NAMES mxml mxml1 PATHS $ENV{MXML_ROOT}) 
    3029 
    31 find_path(MXML_INCLUDE NAMES mxml.h mxml1.h PATHS $ENV{MXML_ROOT}) 
     30# looks in MXML_ROOT environment variable for hint 
     31# set MXML_FOUND MXML_DEFINITIONS MXML_INCLUDE_DIRS  MXML_LIBRARIES  MXML_ROOT_DIR 
    3232 
    33 if(MXML AND MXML_INCLUDE) 
    34     set(MXML_LINK "-lmxml") 
    35     set(MXML_CPP "-DNXXML") 
    36     include_directories($ENV{MXML_INCLUDE}) 
    37 else(MXML AND MXML_INCLUDE) 
    38     include_directories(${CMAKE_SOURCE_DIR}/third_party/mxml-2.6) 
    39 #    add_dependencies(NeXus_Static_Library MXML_Static_Library) 
    40 #    add_dependencies(NeXus_Shared_Library MXML_Static_Library) 
    41 #    set(MXML_LINK "-lmxml") 
    42 #    set(MXML_CPP "-DNXXML") 
    43 endif(MXML AND MXML_INCLUDE) 
     33if (WIN32) 
     34    set(MXML_SEARCH_DEFAULT "C:/InstallKits/HDF5-1.8.6-win64") 
     35        find_library(MXML_SHARED_LIBRARIES NAMES mxml mxml1 HINTS ${MXML_SEARCH} ENV MXML_ROOT PATHS ${MXML_SEARCH_DEFAULT} PATH_SUFFIXES dll lib DOC "location of mxml dll") 
     36        find_library(MXML_STATIC_LIBRARIES NAMES mxml mxml1 HINTS ${MXML_SEARCH} ENV MXML_ROOT PATHS ${MXML_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of mxml lib") 
     37else(WIN32) 
     38    set(MXML_SEARCH_DEFAULT "/usr" "/usr/local" "/sw") 
     39        find_library(MXML_SHARED_LIBRARIES NAMES mxml HINTS ${MXML_SEARCH} ENV MXML_ROOT PATHS ${MXML_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of mxml dll") 
     40        find_library(MXML_STATIC_LIBRARIES NAMES mxml HINTS ${MXML_SEARCH} ENV MXML_ROOT PATHS ${MXML_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of mxml lib") 
     41endif(WIN32) 
     42 
     43mark_as_advanced(MXML_SHARED_LIBRARIES MXML_STATIC_LIBRARIES) 
     44 
     45if (MXML_SHARED_LIBRARIES) 
     46    set(MXML_LIBRARIES ${MXML_SHARED_LIBRARIES}) 
     47        get_filename_component(_MXML_LIBDIR ${MXML_SHARED_LIBRARIES} PATH) 
     48elseif (MXML_STATIC_LIBRARIES) 
     49    set(MXML_LIBRARIES ${MXML_STATIC_LIBRARIES}) 
     50        get_filename_component(_MXML_LIBDIR ${MXML_STATIC_LIBRARIES} PATH) 
     51endif() 
     52set(MXML_DEFINITIONS "") 
     53set(MXML_ROOT_DIR "${_MXML_LIBDIR}/..") 
     54set(MXML_INCLUDE_DIRS "${MXML_ROOT_DIR}/include") 
    4455 
    4556INCLUDE(FindPackageHandleStandardArgs) 
    46 FIND_PACKAGE_HANDLE_STANDARD_ARGS(MXMLLIB DEFAULT_MSG MXML MXML_INCLUDE) 
    47  
    48 MARK_AS_ADVANCED(MXML) 
     57FIND_PACKAGE_HANDLE_STANDARD_ARGS(MXML DEFAULT_MSG MXML_LIBRARIES MXML_INCLUDE_DIRS) 
  • trunk/cmake_include/FindSZIP.cmake

    r1636 r1811  
    2727#==================================================================== 
    2828 
    29 find_library(SZIP_LIB NAMES sz szip PATHS $ENV{HDF5_ROOT}/bin $ENV{HDF5_ROOT}/lib $ENV{HDF5_ROOT}/dll) 
     29# looks in SZIP_ROOT environment variable for hint 
     30# set SZIP_FOUND SZIP_DEFINITIONS SZIP_INCLUDE_DIRS  SZIP_LIBRARIES  SZIP_ROOT_DIR 
    3031 
    31 find_path(SZIP_INCLUDE NAMES sz.h szlib.h PATHS $ENV{HDF5_ROOT}/include) 
     32if (WIN32) 
     33    set(SZIP_SEARCH_DEFAULT "C:/InstallKits/HDF5-1.8.6-win64" $ENV{HDF5_ROOT}) 
     34        find_library(SZIP_LIBRARIES NAMES szip HINTS ${SZIP_SEARCH} ENV SZIP_ROOT PATHS ${SZIP_SEARCH_DEFAULT} PATH_SUFFIXES bin dll lib DOC "location of szip lib") 
     35else(WIN32) 
     36    set(SZIP_SEARCH_DEFAULT $ENV{HDF5_ROOT} "/usr" "/usr/local" "/usr/local/hdf5" "/sw") 
     37        find_library(SZIP_LIBRARIES NAMES sz HINTS ${SZIP_SEARCH} ENV SZIP_ROOT PATHS ${SZIP_SEARCH_DEFAULT} PATH_SUFFIXES lib DOC "location of szip lib") 
     38endif(WIN32) 
    3239 
    33 if(CMAKE_SYSTEM_NAME STREQUAL "Windows") 
    34     find_library(ZIP_LIB NAMES z zlib zdll zlib1 zlibd zlibd1 PATHS $ENV{HDF5_ROOT}/bin $ENV{HDF5_ROOT}/lib) 
    35     find_path(ZIP_INCLUDE zlib.h PATHS $ENV{HDF5_ROOT}/include) 
    36 endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") 
     40find_path(SZIP_INCLUDE_DIRS NAMES sz.h szlib.h HINTS ${SZIP_SEARCH} ENV SZIP_ROOT PATHS ${SZIP_SEARCH_DEFAULT} PATH_SUFFIXES include DOC "location of szip include") 
    3741 
    38 if(SZIP_INCLUDE) 
    39     include_directories(${SZIP_INCLUDE}) 
    40 endif(SZIP_INCLUDE) 
     42#if(CMAKE_SYSTEM_NAME STREQUAL "Windows") 
     43#    find_library(ZIP_LIB NAMES z zlib zdll zlib1 zlibd zlibd1 PATHS $ENV{HDF5_ROOT}/bin $ENV{HDF5_ROOT}/lib) 
     44#    find_path(ZIP_INCLUDE zlib.h PATHS $ENV{HDF5_ROOT}/include) 
     45#endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") 
    4146 
    42 if(ZIP_INCLUDE) 
    43     include_directories(${ZIP_INCLUDE}) 
    44 endif(ZIP_INCLUDE) 
     47#if(SZIP_INCLUDE) 
     48#    include_directories(${SZIP_INCLUDE}) 
     49#endif(SZIP_INCLUDE) 
     50 
     51#if(ZIP_INCLUDE) 
     52#    include_directories(${ZIP_INCLUDE}) 
     53#endif(ZIP_INCLUDE) 
     54 
     55set(SZIP_DEFINITIONS "") 
     56get_filename_component(_SZIP_LIBDIR ${SZIP_LIBRARIES} PATH) 
     57set(SZIP_ROOT_DIR "${_SZIP_LIBDIR}/..") 
    4558 
    4659INCLUDE(FindPackageHandleStandardArgs) 
    47 FIND_PACKAGE_HANDLE_STANDARD_ARGS(SZIPLIB DEFAULT_MSG SZIP_LIB ZIP_LIB) 
     60FIND_PACKAGE_HANDLE_STANDARD_ARGS(SZIP DEFAULT_MSG SZIP_LIBRARIES SZIP_INCLUDE_DIRS) 
    4861 
    49 MARK_AS_ADVANCED(SZIP_LIB) 
  • trunk/src/CMakeLists.txt

    r1794 r1811  
    2727#==================================================================== 
    2828 
    29 add_definitions(-DIN_NEXUS_LIBRARY ${HDF5_DEFINITIONS} ${HDF5_CPP} ${HDF4_CPP} ${MXML_CPP} ${NX_CPP}) 
     29add_definitions(-DIN_NEXUS_LIBRARY ${NX_CPP}) 
    3030 
    3131set (NAPISRC napi.c napiu.c nxstack.c nxstack.h stptok.c  nxdataset.c nxdataset.h nx_stptok.h) 
    3232 
    33 if (HDF4_FOUND) 
     33if (HAVE_HDF4) 
    3434  set (NAPISRC ${NAPISRC} napi4.c) 
    35 endif (HDF4_FOUND) 
     35  add_definitions(-DHDF4 ${HDF4_DEFINITIONS} ${HDF4_CPP}) 
     36  include_directories(${HDF4_INCLUDE_DIRS}) 
     37endif (HAVE_HDF4) 
    3638 
    37 if (HDF5_FOUND) 
     39if (HAVE_HDF5) 
    3840  set (NAPISRC ${NAPISRC} napi5.c) 
    39 endif (HDF5_FOUND) 
     41  add_definitions(-DHDF5 ${HDF5_DEFINITIONS} ${HDF5_CPP}) 
     42  include_directories(${HDF5_INCLUDE_DIRS}) 
     43endif (HAVE_HDF5) 
     44 
     45if(HAVE_MXML) 
     46    set (NAPISRC ${NAPISRC} nxxml.c nxio.c nxio.h) 
     47    add_definitions(-DNXXML ${MXML_DEFINITIONS} ${MXML_CPP}) 
     48        include_directories(${MXML_INCLUDE_DIRS}) 
     49endif(HAVE_MXML) 
    4050 
    4151# need napi_exports2.c  on win32 but not win64 
     
    4858endif (WIN32) 
    4959 
    50 if(HAVE_XML) 
    51     set (NAPISRC ${NAPISRC} nxxml.c nxio.c nxio.h) 
    52 endif(HAVE_XML) 
    53  
    54 set (NAPISRC ${NAPISRC} nxxml.c nxio.c nxio.h) 
    55  
    5660set_property(SOURCE ${NAPISRC} APPEND PROPERTY COMPILE_FLAGS ${NX_CFLAGS}) 
    5761 
     
    5963 
    6064set (NX_LIBS  ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
    61                       ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB} ) 
     65                      ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${SZIP_LIBRARIES} ${ZLIB_LIBRARIES} ) 
    6266#if (MINGW_MSYS) 
    6367#  set (MINGW_SRC napi_exports.c napi_exports2.c napi_exports.h) 
     
    8286set_target_properties(NeXus_Static_Library PROPERTIES OUTPUT_NAME NeXusStatic) 
    8387 
    84 target_link_libraries(NeXus_Static_Library ${HDF5_STATIC_LIBRARIES} ${HDF4_STATIC_LIBRARIES} ${NX_LIBS}) 
     88target_link_libraries(NeXus_Static_Library ${HDF5_STATIC_LIBRARIES} ${HDF4_STATIC_LIBRARIES} ${MXML_STATIC_LIBRARIES}  ${NX_LIBS}) 
    8589 
    8690#Make NeXus Shared Library 
     
    106110endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") 
    107111 
    108 target_link_libraries(NeXus_Shared_Library ${HDF5_SHARED_LIBRARIES} ${HDF4_SHARED_LIBRARIES} ${NX_LIBS}) 
     112target_link_libraries(NeXus_Shared_Library ${HDF5_SHARED_LIBRARIES} ${HDF4_SHARED_LIBRARIES} ${MXML_SHARED_LIBRARIES} ${NX_LIBS}) 
    109113 
    110 if(HAVE_XML) 
    111 if(MXMLLIB_FOUND) 
    112     target_link_libraries(NeXus_Static_Library ${MXML}) 
    113     target_link_libraries(NeXus_Shared_Library ${MXML}) 
    114 else() 
    115     target_link_libraries(NeXus_Static_Library MXML_Static_Library) 
    116     target_link_libraries(NeXus_Shared_Library MXML_Shared_Library) 
    117 endif(MXMLLIB_FOUND) 
    118 endif(HAVE_XML) 
     114#if(HAVE_MXML) 
     115#if(MXMLLIB_FOUND) 
     116#    target_link_libraries(NeXus_Static_Library ${MXML}) 
     117#    target_link_libraries(NeXus_Shared_Library ${MXML}) 
     118#else() 
     119#    target_link_libraries(NeXus_Static_Library MXML_Static_Library) 
     120#    target_link_libraries(NeXus_Shared_Library MXML_Shared_Library) 
     121#endif(MXMLLIB_FOUND) 
     122#endif(HAVE_MXML) 
    119123 
    120124install (TARGETS NeXus_Static_Library NeXus_Shared_Library 
Note: See TracChangeset for help on using the changeset viewer.