Changeset 1674


Ignore:
Timestamp:
22/10/11 05:46:21 (7 months ago)
Author:
Freddie Akeroyd
Message:

Fixes for Windows building. refs #281

Location:
trunk
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/CMakeLists.txt

    r1638 r1674  
    4141#Packages to find that are required for the build 
    4242 
     43set(HDF5_SEARCH "" CACHE PATH "Where to search for HDF5") 
     44if (HDF5_SEARCH) 
     45    set(ENV{HDF5_ROOT} "${HDF5_SEARCH}")    # findHDF5 uses HDF5_ROOT environment variable 
     46endif (HDF5_SEARCH) 
     47 
     48set(HDF4_SEARCH "" CACHE PATH "Where to search for HDF4") 
     49 
    4350find_package(HDF5 REQUIRED) 
    4451find_package(JPEG) 
     
    5057find_package(TCL) 
    5158find_package(LATEX) 
     59 
     60if (WIN32) 
     61    set(HDF5_STATIC_LIBRARIES ${HDF5_SEARCH}/lib/hdf5.lib ) 
     62    set(HDF5_SHARED_LIBRARIES ${HDF5_SEARCH}/dll/hdf5dll.lib ) 
     63    set(HDF4_STATIC_LIBRARIES ${HDF4_SEARCH}/lib/hd426.lib ${HDF4_SEARCH}/lib/hm426.lib ) 
     64    set(HDF4_SHARED_LIBRARIES ${HDF4_SEARCH}/dll/hd426m.lib ${HDF4_SEARCH}/dll/hm426m.lib ) 
     65        set(HDF4_CPP "-I\"${HDF4_SEARCH}/include\" -DHDF4") 
     66        set(HDF4_FOUND YES) 
     67        set(MXML_CPP "-DNXXML") 
     68else(WIN32) 
     69    set(HDF5_STATIC_LIBRARIES ${HDF5_SEARCH}/lib/libhdf5.a ) 
     70    set(HDF5_SHARED_LIBRARIES ${HDF5_SEARCH}/lib/libhdf5.so ) 
     71endif(WIN32) 
    5272 
    5373#CMake includes  
     
    199219 
    200220#We need to be able to check for Fortran F77/90 - but how do we do this? 
    201 #if (BUILD_FORTRAN_BINDINGS) 
     221if (BUILD_FORTRAN_BINDINGS) 
    202222    enable_language(Fortran) 
    203 #endif (BUILD_FORTRAN_BINDINGS) 
     223endif (BUILD_FORTRAN_BINDINGS) 
    204224 
    205225#We need a NXDOCDIR as a place to install the docs for various packages. 
     
    235255 
    236256# this must always be last 
    237 set(CPACK_BINARY_NSIS OFF) 
    238 set(CPACK_BINARY_ZIP ON) 
     257set(CPACK_BINARY_NSIS ON) 
     258set(CPACK_BINARY_ZIP OFF) 
    239259 
    240260set(CPACK_SOURCE_IGNORE_FILES  
  • trunk/Windows_extra/libNeXus-0-x64.def

    r1630 r1674  
    77NXMGetError 
    88NXMSetError 
     9NXMSetTError 
    910createNXDataset 
    1011createTextNXDataset 
     
    2223nxiclosegroup_ 
    2324nxicompmakedata_ 
     25nxicompmakedata64_ 
    2426nxicompress_ 
    2527nxifclose_ 
     
    3941nxigetgroupinfo_ 
    4042nxigetrawinfo_ 
     43nxigetrawinfo64_ 
    4144nxigetinfo_ 
     45nxigetinfo64_ 
    4246nxigetnextattr_ 
    4347nxigetnextentry_ 
    4448nxigetslab_ 
     49nxigetslab64_ 
    4550nxiinitattrdir_ 
    4651nxiinitgroupdir_ 
     
    4954nxilinkexternal_ 
    5055nximakedata_ 
     56nximakedata64_ 
    5157nximakegroup_ 
    5258nximakelink_ 
    5359nximakenamedlink_ 
    5460nximalloc_ 
     61nximalloc64_ 
    5562nxiopen_ 
    5663nxiopendata_ 
     
    6269nxiputdata_ 
    6370nxiputslab_ 
     71nxiputslab64_ 
    6472nxisameid_ 
    6573nxisetcache_ 
  • trunk/applications/NXbrowse/CMakeLists.txt

    r1663 r1674  
    2929add_executable (nxbrowse NXbrowse.c) 
    3030 
    31 target_link_libraries(nxbrowse NeXus_Shared_Library ${HDF5_LIBRARIES} 
    32                       ${MXML_LINK} ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} 
     31target_link_libraries(nxbrowse NeXus_Shared_Library  
     32                      ${READLINE_LINK} ${M_LINK} 
    3333                      ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} 
    34                       ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}) 
     34                      ${HISTORY_LINK}) 
    3535 
    3636install (TARGETS nxbrowse DESTINATION bin) 
  • trunk/applications/NXconvert/CMakeLists.txt

    r1636 r1674  
    2929include_directories(../../third_party ../../bindings/cpp) 
    3030 
    31 add_executable (nxconvert nxconvert.cpp nxconvert_common.h) 
     31add_executable (nxconvert nxconvert.cpp nxconvert_common.h ) 
    3232 
    33 add_library (NXconvert_Static_Library STATIC nxconvert_common.cpp 
    34              nxconvert_common.h) 
     33set(NXCONVERT_LIB_SRC nxconvert_common.cpp nxconvert_common.h ) 
    3534 
    36 set_target_properties(NXconvert_Static_Library PROPERTIES OUTPUT_NAME NXconvert) 
     35add_library (NXconvert_Static_Library STATIC ${NXCONVERT_LIB_SRC} ) 
     36 
     37add_library (NXconvert_Shared_Library SHARED ${NXCONVERT_LIB_SRC} ) 
     38 
     39#set_target_properties(NXconvert_Static_Library PROPERTIES OUTPUT_NAME NXconvert) 
    3740 
    3841target_link_libraries(NXconvert_Static_Library NeXus_CPP_Static_Library 
    39                       NeXus_Static_Library ${HDF5_LIBRARIES} ${MXML_LINK} 
    40                       ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} 
    41                       ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK} 
    42                       ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB}) 
     42                       ${READLINE_LINK} ${M_LINK} ${DL_LINK} 
     43                      ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK}) 
    4344 
    44 target_link_libraries(nxconvert NXconvert_Static_Library 
    45                       NeXus_CPP_Static_Library NeXus_Static_Library 
    46                       ${HDF5_LIBRARIES} ${MXML_LINK} ${HDF4_LINK} 
     45target_link_libraries(NXconvert_Shared_Library NeXus_CPP_Shared_Library 
     46                       ${READLINE_LINK} ${M_LINK} ${DL_LINK} 
     47                      ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK}) 
     48 
     49target_link_libraries(nxconvert NXconvert_Shared_Library 
    4750                      ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} 
    48                       ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK} 
    49                       ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB}) 
     51                      ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK}) 
    5052 
    51 install (TARGETS NXconvert_Static_Library nxconvert 
     53set_property(TARGET NXconvert_Shared_Library PROPERTY ENABLE_EXPORTS YES)  
     54 
     55install (TARGETS NXconvert_Static_Library NXconvert_Shared_Library nxconvert 
    5256         RUNTIME DESTINATION bin COMPONENT Runtime 
    5357         LIBRARY DESTINATION lib COMPONENT Runtime 
  • trunk/applications/NXdir/CMakeLists.txt

    r1636 r1674  
    3030                data_writer.cpp nxdir.h nxdir_help.h) 
    3131 
    32 target_link_libraries(nxdir NeXus_Shared_Library ${HDF5_LIBRARIES} 
    33                       ${MXML_LINK} ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} 
     32target_link_libraries(nxdir NeXus_Shared_Library  
     33                      ${MXML_LINK} ${READLINE_LINK} ${M_LINK} 
    3434                      ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} 
    35                       ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}) 
     35                      ${HISTORY_LINK} ) 
    3636 
    3737install (TARGETS nxdir DESTINATION bin) 
  • trunk/applications/NXtraverse/CMakeLists.txt

    r1636 r1674  
    3232 
    3333target_link_libraries(nxtraverse 
    34                       NeXus_CPP_Static_Library NeXus_Static_Library 
    35                       ${HDF5_LIBRARIES} ${MXML_LINK} ${HDF4_LINK} 
     34                      NeXus_CPP_Shared_Library  
    3635                      ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} 
    37                       ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK} 
    38                       ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB}) 
     36                      ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK}) 
    3937 
    4038install (TARGETS nxtraverse 
  • trunk/applications/nxingest/CMakeLists.txt

    r1636 r1674  
    3434                         nxingest_time.h nxingest_utils.h) 
    3535 
    36 target_link_libraries(nxingest NeXus_Shared_Library ${HDF5_LIBRARIES} 
    37                       ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} 
    38                       ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK} 
    39                       ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB}) 
     36target_link_libraries(nxingest NeXus_Shared_Library ${READLINE_LINK} ${M_LINK} ${DL_LINK} 
     37                      ${PTHREAD_LINK} ${DF_LINK} ${TERMCAP_LINK} ${HISTORY_LINK}) 
    4038 
    4139 
  • trunk/bindings/cpp/CMakeLists.txt

    r1636 r1674  
    2727#==================================================================== 
    2828 
    29 add_definitions(-DIN_NEXUS_CPP_LIBRARY=1) 
     29add_definitions(-DIN_NEXUS_CPP_LIBRARY=1 ) 
    3030 
    3131#Make NeXus CPP Bindings Static Library 
     
    3838set_target_properties(NeXus_CPP_Static_Library PROPERTIES OUTPUT_NAME NeXusCPP) 
    3939 
    40 target_link_libraries(NeXus_CPP_Static_Library NeXus_Static_Library ${HDF5_LIBRARIES} ${MXML_LINK} 
    41                       ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
     40target_link_libraries(NeXus_CPP_Static_Library NeXus_Static_Library  
     41                                        ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
    4242                      ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}) 
    4343 
     
    5050                      VERSION 1.0 SOVERSION 4) 
    5151 
    52 target_link_libraries(NeXus_CPP_Shared_Library NeXus_Shared_Library ${HDF5_LIBRARIES} ${MXML_LINK} 
    53                       ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
     52target_link_libraries(NeXus_CPP_Shared_Library NeXus_Shared_Library  
     53                      ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
    5454                      ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZLIB_LIBRARIES}) 
    5555 
  • trunk/bindings/java/CMakeLists.txt

    r1639 r1674  
    134134        SET_TARGET_PROPERTIES(jnexus PROPERTIES VERSION 1.0 SOVERSION 4) 
    135135 
    136         TARGET_LINK_LIBRARIES(jnexus NeXus_Shared_Library ${HDF5_LIBRARIES} 
     136        TARGET_LINK_LIBRARIES(jnexus NeXus_Shared_Library  
    137137                      ${READLINE_LINK} ${M_LINK} ${DF_LINK} 
    138138                      ${DL_LINK} ${PTHREAD_LINK} ${TERMCAP_LINK} ${HDF4_LINK} 
  • trunk/src/CMakeLists.txt

    r1636 r1674  
    2929add_definitions(-DIN_NEXUS_LIBRARY ${HDF5_DEFINITIONS} ${HDF5_CPP} ${HDF4_CPP} ${MXML_CPP}) 
    3030 
     31set (NAPISRC napi.c napiu.c nxstack.c nxstack.h stptok.c  nxdataset.c nxdataset.h nx_stptok.h) 
     32 
    3133if (HDF4_FOUND) 
    32   set (H4SRC napi4.c) 
     34  set (NAPISRC ${NAPISRC} napi4.c) 
    3335endif (HDF4_FOUND) 
    3436 
    3537if (HDF5_FOUND) 
    36   set (H5SRC napi5.c) 
     38  set (NAPISRC ${NAPISRC} napi5.c) 
    3739endif (HDF5_FOUND) 
    3840 
    39 set (XMLSRC nxxml.c nxio.c nxio.h) 
     41# need napi_exports2.c  on win32 but not win64 
     42if (WIN32) 
     43    set(NAPISRC ${NAPISRC} napi_exports.c napi_exports.h) 
     44endif (WIN32) 
     45 
     46set (NAPISRC ${NAPISRC} nxxml.c nxio.c nxio.h) 
    4047 
    4148file(STRINGS ${PROJECT_SOURCE_DIR}/src/nexus_symbols.txt NEXUS_SYMBOLS) 
    4249 
     50set (NX_LIBS  ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
     51                      ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB} ) 
    4352#if (MINGW_MSYS) 
    4453#  set (MINGW_SRC napi_exports.c napi_exports2.c napi_exports.h) 
     
    5867#endif (MINGW_MSYS) 
    5968 
    60 # need napi_exports2.c  on win32 but not win64 
    61 if (WIN32) 
    62     set(WINSRC napi_exports.c napi_exports.h) 
    63 endif (WIN32) 
    6469 
    6570#Make NeXus Static Library 
    66 add_library (NeXus_Static_Library STATIC napi.c napiu.c nxstack.c nxstack.h 
    67              stptok.c  nxdataset.c nxdataset.h nx_stptok.h ${WINSRC} ${H4SRC} ${H5SRC} 
    68              ${XMLSRC}) 
     71add_library (NeXus_Static_Library STATIC ${NAPISRC}) 
    6972 
    70 set_target_properties(NeXus_Static_Library PROPERTIES OUTPUT_NAME NeXus) 
     73set_target_properties(NeXus_Static_Library PROPERTIES OUTPUT_NAME NeXusStatic) 
    7174 
    72 target_link_libraries(NeXus_Static_Library ${HDF5_LIBRARIES} 
    73                       ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
    74                       ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB}) 
     75target_link_libraries(NeXus_Static_Library ${HDF5_STATIC_LIBRARIES} ${HDF4_STATIC_LIBRARIES} ${NX_LIBS}) 
    7576 
    7677#Make NeXus Shared Library 
    7778 
    78 add_library (NeXus_Shared_Library SHARED napi.c napiu.c nxstack.c nxstack.h 
    79              stptok.c  nxdataset.c nxdataset.h nx_stptok.h ${WINSRC} ${H4SRC} ${H5SRC} 
    80              ${XMLSRC}) 
     79add_library (NeXus_Shared_Library SHARED ${NAPISRC}) 
     80 
     81set_property(TARGET NeXus_Shared_Library APPEND PROPERTY COMPILE_DEFINITIONS _HDF5USEDLL_) 
    8182 
    8283#Note - library version needs to be got from somewhere? 
    8384if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") 
    84     set_target_properties(NeXus_Shared_Library PROPERTIES OUTPUT_NAME NeXus 
    85                       VERSION 1.0 SOVERSION 4 LINK_FLAGS /def:${PROJECT_SOURCE_DIR}/Windows_extra/libNeXus-0-x64.def) 
     85    set_target_properties(NeXus_Shared_Library PROPERTIES OUTPUT_NAME libNeXus-0 
     86                      VERSION 1.0 SOVERSION 4 ) 
     87        set_property(TARGET NeXus_Shared_Library APPEND PROPERTY LINK_FLAGS /def:${PROJECT_SOURCE_DIR}/Windows_extra/libNeXus-0-x64.def) 
    8688else(${CMAKE_SYSTEM_NAME} MATCHES "Windows") 
    8789    set_target_properties(NeXus_Shared_Library PROPERTIES OUTPUT_NAME NeXus 
     
    8991endif (${CMAKE_SYSTEM_NAME} MATCHES "Windows") 
    9092 
    91 target_link_libraries(NeXus_Shared_Library ${HDF5_LIBRARIES} 
    92                       ${HDF4_LINK} ${READLINE_LINK} ${M_LINK} ${DL_LINK} ${PTHREAD_LINK} ${DF_LINK} 
    93                       ${TERMCAP_LINK} ${HISTORY_LINK} ${JPEG_LIBRARIES} ${ZIP_LIB} ${SZIP_LIB}) 
     93target_link_libraries(NeXus_Shared_Library ${HDF5_SHARED_LIBRARIES} ${HDF4_SHARED_LIBRARIES} ${NX_LIBS}) 
    9494 
    9595if(MXMLLIB_FOUND) 
     
    9898else() 
    9999    target_link_libraries(NeXus_Static_Library MXML_Static_Library) 
    100     target_link_libraries(NeXus_Shared_Library MXML_Static_Library) 
     100    target_link_libraries(NeXus_Shared_Library MXML_Shared_Library) 
    101101endif(MXMLLIB_FOUND) 
    102102 
  • trunk/test/CMakeLists.txt

    r1636 r1674  
    3131INSTALL (FILES ${NXEXAMPLE_FILES} DESTINATION ${NXEXAMPLEDIR}) 
    3232 
     33add_executable(napi_test_hdf5 napi_test.c) 
     34target_link_libraries(napi_test_hdf5 NeXus_Shared_Library) 
  • trunk/third_party/mxml-2.6/CMakeLists.txt

    r1636 r1674  
    4343add_library (MXML_Static_Library STATIC ${HEADER} ${SOURCE}) 
    4444 
    45 #add_library (MXML_Shared_Library SHARED ${HEADER} ${SOURCE}) 
     45add_library (MXML_Shared_Library SHARED ${HEADER} ${SOURCE}) 
    4646 
    47 set_target_properties(MXML_Static_Library PROPERTIES OUTPUT_NAME mxml1) 
     47#set_target_properties(MXML_Static_Library PROPERTIES OUTPUT_NAME mxml1) 
    4848 
    49 #set_target_properties(MXML_Shared_Library PROPERTIES OUTPUT_NAME mxml1) 
     49#if (WIN32) 
     50#if (CMAKE_BUILD_TYPE STREQUAL "Debug") 
     51#set_property(TARGET MXML_Static_Library APPEND PROPERTY COMPILE_FLAGS  /MDd) 
     52#else () 
     53#set_property(TARGET MXML_Static_Library APPEND PROPERTY COMPILE_FLAGS  /MD) 
     54#endif() 
     55#endif (WIN32) 
    5056 
     57if (WIN32) 
     58set_property(TARGET MXML_Shared_Library APPEND PROPERTY LINK_FLAGS /def:${CMAKE_CURRENT_SOURCE_DIR}/vcnet/mxml1.def) 
     59endif (WIN32) 
     60 
     61set_target_properties(MXML_Shared_Library PROPERTIES OUTPUT_NAME mxml1 
     62                      VERSION 1.0 SOVERSION 4) 
    5163target_link_libraries(testmxml MXML_Static_Library ${PTHREAD_LINK}) 
    5264 
Note: See TracChangeset for help on using the changeset viewer.