[ismrmrd] 241/281: change the ismrmrd for windows compilation

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:19 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag ismrmrd0.5
in repository ismrmrd.

commit 038a1cce0296906c26004d0d7fc2fc2cd454809f
Author: Hui Xue <hui.xue at nih.gov>
Date:   Mon Jun 30 08:20:10 2014 -0400

    change the ismrmrd for windows compilation
---
 CMakeLists.txt | 130 +++++++++++++++++++++------------------------------------
 1 file changed, 48 insertions(+), 82 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f9b3826..7e8ff89 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,13 +3,6 @@ project(ISMRMRD)
 
 enable_testing()
 
-#Set the build type to Release if not specified
-IF(NOT CMAKE_BUILD_TYPE)
-  SET(CMAKE_BUILD_TYPE Release CACHE STRING
-      "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
-      FORCE)
-ENDIF(NOT CMAKE_BUILD_TYPE)
-
 # define install paths globally
 set(ISMRMRD_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/ismrmrd)
 set(ISMRMRD_INSTALL_LIB_DIR ${ISMRMRD_INSTALL_PREFIX}/lib)
@@ -24,98 +17,71 @@ set(ISMRMRD_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 set(ISMRMRD_MODULE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
 set(ISMRMRD_SCHEMA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/schema)
 set(ISMRMRD_SCHEMA_SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/src/xsd)
-
-# add project specific cmake find modules
-list(APPEND CMAKE_MODULE_PATH ${ISMRMRD_MODULE_DIR})
+                                                                    
+IF(NOT CMAKE_BUILD_TYPE)
+  SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
+ENDIF(NOT CMAKE_BUILD_TYPE)
 
 if (WIN32)
-    add_definitions(-DWIN32 -D_WIN32 -D_WINDOWS)
-    add_definitions(-DUNICODE -D_UNICODE)
-    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
-    set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
-    set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
-    set(CMAKE_STATIC_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
-    set(CMAKE_MODULE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
+    ADD_DEFINITIONS(-DWIN32 -D_WIN32 -D_WINDOWS)
+    ADD_DEFINITIONS(-DUNICODE -D_UNICODE)
+    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)
+    SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc")
+    SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
+    SET (CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
+    SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
+    SET (CMAKE_STATIC_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
+    SET (CMAKE_MODULE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO")
 endif (WIN32)
 
-# required packages for main library
-find_package(Boost COMPONENTS thread system REQUIRED)
-find_package(HDF5 1.8 COMPONENTS C CXX HL REQUIRED)
+set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/ismrmrd)
+list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
 
-# necessary for Windows and RHEL <=6 systems
-set(Boost_NO_BOOST_CMAKE ON)
+find_package(XSD REQUIRED)
+find_package(XercesC REQUIRED)
 
 if(WIN32)
-  add_definitions( -DBOOST_ALL_NO_LIB )
-  add_definitions( -DBOOST_ALL_DYN_LINK )
+    set(Boost_NO_BOOST_CMAKE ON)
 endif(WIN32)
 
-add_library(ismrmrd SHARED ismrmrd_hdf5.cpp)
-include_directories(${HDF5_C_INCLUDE_DIR} ${HDF5_CXX_INCLUDE_DIR}
-    ${Boost_INCLUDE_DIR})
-
-#The findHDF5.cmake does not work very well on Windows, let's help it out
 if(WIN32)
-    target_link_libraries(ismrmrd optimized ${HDF5_hdf5_LIBRARY_RELEASE}
-        optimized ${HDF5_hdf5_cpp_LIBRARY_RELEASE})
-    target_link_libraries(ismrmrd debug ${HDF5_hdf5_LIBRARY_DEBUG}
-        debug ${HDF5_hdf5_cpp_LIBRARY_DEBUG})
-    target_link_libraries(ismrmrd ${Boost_LIBRARIES})
-else(WIN32)
-    target_link_libraries(ismrmrd ${HDF5_LIBRARIES} ${Boost_THREAD_LIBRARY}
-        ${Boost_SYSTEM_LIBRARY})
+  add_definitions( -DBOOST_ALL_NO_LIB )
+  add_definitions( -DBOOST_ALL_DYN_LINK )
 endif(WIN32)
 
-install(TARGETS ismrmrd
-    DESTINATION ${ISMRMRD_INSTALL_LIB_DIR})
-
-install(FILES ${ISMRMRD_SOURCE_DIR}/ismrmrd.h
-    ${ISMRMRD_SOURCE_DIR}/ismrmrd_hdf5.h
-    ${ISMRMRD_SOURCE_DIR}/ismrmrd_hdf5_datatypes.h
-    ${ISMRMRD_SOURCE_DIR}/ismrmrd_export.h
-    DESTINATION ${ISMRMRD_INSTALL_INCLUDE_DIR})
-
-# required packages for support xsd library
-find_package(XSD REQUIRED)
-find_package(XercesC REQUIRED)
-
-# process the XSD files
-set(XSDS ${ISMRMRD_SCHEMA_DIR}/ismrmrd.xsd)
-set(XSD_ARGS cxx-tree --generate-serialization)
-if ( WIN32 )
-    SET(XSD_ARGS cxx-tree --generate-serialization --export-symbol EXPORTISMRMRDXSD --hxx-prologue-file ${CMAKE_SOURCE_DIR}/ismrmrd_xsd_export.h)
-endif (WIN32)
-
-wrap_xsd(XSDS_SOURCES XSD_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/schema ${XSDS} OPTIONS ${XSD_ARGS})
+find_package(Boost COMPONENTS thread system program_options REQUIRED)
 
-if ( WIN32 )
-    include_directories(${ISMRMRD_SCHEMA_SOURCE_DIR} ${XSD_INCLUDE_DIR}
-        ${XERCESC_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${HDF5_CXX_INCLUDE_DIR}
-        ${HDF5_C_INCLUDE_DIR})
-    link_directories(${Boost_LIBRARY_DIRS})
-endif ( WIN32 )
+find_package(HDF5 1.8 COMPONENTS C CXX REQUIRED)
 
-if ( NOT WIN32 )
-    add_library(ismrmrd_xsd SHARED ${XSDS_SOURCES})
-    include_directories(${XERCESC_INCLUDE_DIR})
-    target_link_libraries(ismrmrd_xsd ${XERCESC_LIBRARIES})
-endif ( NOT WIN32 )
+#Process the XSD files
+SET(XSDS schema/ismrmrd.xsd)
+SET(XSD_ARGS cxx-tree --generate-serialization)
+#SET(XSD_ARGS cxx-tree --generate-serialization --export-symbol EXPORTISMRMRDXSD --hxx-prologue-file ${CMAKE_SOURCE_DIR}/ismrmrd_xsd_export.h)
+WRAP_XSD(XSDS_SOURCES XSD_INCLUDES ${CMAKE_CURRENT_BINARY_DIR}/schema ${XSDS} OPTIONS ${XSD_ARGS})
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/src/xsd ${XSD_INCLUDE_DIR} ${XERCESC_INCLUDE_DIR} ${Boost_INCLUDE_DIR} ${HDF5_CXX_INCLUDE_DIR} ${HDF5_C_INCLUDE_DIR})
+LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
 
-install(FILES ${XSDS} ${XSDS_SOURCES}
-    DESTINATION ${ISMRMRD_INSTALL_SCHEMA_DIR})
+# This dummy is required to trigger autogeneration of ${XSDS_SOURCES}
+add_library(dummy SHARED ${XSDS_SOURCES})
+target_link_libraries(dummy ${XERCESC_LIBRARIES})
 
-if ( NOT WIN32 )
-    install(TARGETS ismrmrd_xsd DESTINATION ${ISMRMRD_INSTALL_LIB_DIR})
-endif ( NOT WIN32 )
+# Add library ismrmrd
+add_library(ismrmrd SHARED ismrmrd_hdf5.cpp schema/ismrmrd.xsd)
 
-install(FILES ${ISMRMRD_MODULE_DIR}/FindIsmrmrd.cmake
-    ${ISMRMRD_MODULE_DIR}/FindFFTW3.cmake
-    ${ISMRMRD_MODULE_DIR}/FindXSD.cmake
-    ${ISMRMRD_MODULE_DIR}/FindXercesC.cmake
-    ${ISMRMRD_MODULE_DIR}/FindNumPy.cmake
-    DESTINATION ${ISMRMRD_INSTALL_MODULE_DIR})
+#The findHDF5.cmake does not work very well on Windows, let's help it out
+IF(WIN32)
+    target_link_libraries(ismrmrd optimized ${HDF5_hdf5_LIBRARY_RELEASE} optimized ${HDF5_hdf5_cpp_LIBRARY_RELEASE})
+    target_link_libraries(ismrmrd debug ${HDF5_hdf5_LIBRARY_DEBUG} debug ${HDF5_hdf5_cpp_LIBRARY_DEBUG})
+    target_link_libraries(ismrmrd ${Boost_LIBRARIES})
+ELSE (WIN32)
+    target_link_libraries(ismrmrd ${HDF5_LIBRARIES} ${Boost_LIBRARIES})
+ENDIF(WIN32)
+
+INSTALL(FILES ismrmrd.h ismrmrd_hdf5.h ismrmrd_hdf5_datatypes.h ismrmrd_export.h DESTINATION include)
+INSTALL(FILES schema/ismrmrd.xsd ${XSDS_SOURCES} DESTINATION schema)
+INSTALL(FILES cmake/FindIsmrmrd.cmake cmake/FindFFTW3.cmake cmake/FindXSD.cmake
+        cmake/FindXercesC.cmake cmake/FindNumPy.cmake DESTINATION cmake)
+INSTALL(TARGETS ismrmrd DESTINATION lib)
 
 add_subdirectory(examples/c++)
 add_subdirectory(utilities)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list