cmake_minimum_required (VERSION 2.8) PROJECT (HDF5_F90_EXAMPLES C CXX Fortran) # -------------------------------------------------------------------- # Notes: When creating examples they should be prefixed # with "f90_ex_". This allows for easier filtering of the examples. # -------------------------------------------------------------------- #----------------------------------------------------------------------------- # Setup include Directories #----------------------------------------------------------------------------- INCLUDE_DIRECTORIES (${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${HDF5_F90_SRC_DIR}/src) LINK_DIRECTORIES ( ${CMAKE_Fortran_MODULE_DIRECTORY} ${HDF5_F90_BINARY_DIR} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY} ) #----------------------------------------------------------------------------- # Define Sources #----------------------------------------------------------------------------- SET (examples dsetexample fileexample rwdsetexample attrexample groupexample grpsexample grpdsetexample hyperslab selectele grpit refobjexample refregexample mountexample compound ) FOREACH (example ${examples}) ADD_EXECUTABLE (f90_ex_${example} ${HDF5_F90_EXAMPLES_SOURCE_DIR}/${example}.f90) H5_NAMING (f90_ex_${example}) IF (WIN32) IF (BUILD_SHARED_LIBS) IF (MSVC) SET_TARGET_PROPERTIES (f90_ex_${example} PROPERTIES COMPILE_FLAGS "/dll" LINK_FLAGS "/SUBSYSTEM:CONSOLE" ) ENDIF (MSVC) ELSE (BUILD_SHARED_LIBS) IF (MSVC) SET_TARGET_PROPERTIES (f90_ex_${example} PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT" ) ENDIF (MSVC) ENDIF (BUILD_SHARED_LIBS) SET_PROPERTY (TARGET f90_ex_${example} APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS ) SET_TARGET_PROPERTIES (f90_ex_${example} PROPERTIES LINKER_LANGUAGE Fortran) ENDIF (WIN32) TARGET_LINK_LIBRARIES (f90_ex_${example} ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) ENDFOREACH (example ${examples}) IF (H5_HAVE_PARALLEL) ADD_EXECUTABLE (f90_ex_ph5example ${HDF5_F90_EXAMPLES_SOURCE_DIR}/ph5example.f90) H5_NAMING (f90_ex_ph5example) IF (WIN32) IF (BUILD_SHARED_LIBS) IF (MSVC) SET_TARGET_PROPERTIES (f90_ex_ph5example PROPERTIES COMPILE_FLAGS "/dll" LINK_FLAGS "/SUBSYSTEM:CONSOLE" ) ENDIF (MSVC) ELSE (BUILD_SHARED_LIBS) IF (MSVC) SET_TARGET_PROPERTIES (f90_ex_ph5example PROPERTIES LINK_FLAGS "/NODEFAULTLIB:MSVCRT" ) ENDIF (MSVC) ENDIF (BUILD_SHARED_LIBS) SET_PROPERTY (TARGET f90_ex_ph5example APPEND PROPERTY COMPILE_DEFINITIONS HDF5F90_WINDOWS ) SET_TARGET_PROPERTIES (f90_ex_ph5example PROPERTIES LINKER_LANGUAGE Fortran) ENDIF (WIN32) TARGET_LINK_LIBRARIES (f90_ex_ph5example ${HDF5_F90_LIB_TARGET} ${HDF5_LIB_TARGET} ) ENDIF (H5_HAVE_PARALLEL)