123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232 |
- cmake_minimum_required(VERSION 2.8)
- if (UNIX)
- set(CMAKE_Fortran_COMPILER "mpif90")
- endif(UNIX)
- project(guess)
- set (GRID T255)
- if (GRID MATCHES "T255")
- add_definitions(-DGRID_T255)
- elseif (GRID MATCHES "T159")
- add_definitions(-DGRID_T159)
- else()
- exit(-1)
- endif()
- set(COMPRESS_OUTPUT true)
- if(COMPRESS_OUTPUT)
- set(LIBS ${LIBS} z)
- add_definitions(-DCOMPRESS_OUTPUT)
- message(STATUS "Output compression has been enabled.")
- endif(COMPRESS_OUTPUT)
- if (MSVC)
-
-
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D _CRT_SECURE_NO_WARNINGS")
- endif()
- if (UNIX)
- enable_language(Fortran)
- endif(UNIX)
- if (NOT MSVC_VERSION EQUAL "1200")
- set(UNIT_TESTS "OFF" CACHE BOOL "Whether to include unit tests")
- endif()
- if (UNIX)
-
-
-
-
-
- if (NOT $ENV{ARCH} STREQUAL "")
- set(DEFAULT_SYSTEM $ENV{ARCH})
- else()
- set(DEFAULT_SYSTEM "")
- endif()
- set(SYSTEM ${DEFAULT_SYSTEM} CACHE STRING "System to build for (empty (=simba), gimle, platon, alarik or multicore)")
- endif (UNIX)
- set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
- find_package(NetCDF QUIET)
- if (NETCDF_FOUND)
-
-
-
- if (UNIX)
- include_directories(${NETCDF_INCLUDE_DIRS}
- ${guess_SOURCE_DIR}/../oasis3-mct/ecconf/build/lib/psmile.MPI1)
- else()
- include_directories(${NETCDF_INCLUDE_DIRS})
- endif(UNIX)
- set(LIBS ${LIBS} ${NETCDF_LIBRARIES})
- add_definitions(-DHAVE_NETCDF)
-
- if (UNIX)
- link_directories(${guess_SOURCE_DIR}/../oasis3-mct/ecconf/lib
- ${NETCDF_INCLUDE_DIRS}/../lib)
- set(LIBS ${LIBS} psmile.MPI1 mct mpeu scrip netcdf netcdff)
- endif (UNIX)
- else()
- include_directories(//$(EBROOTNETCDF)/include $(EBROOTNETCDFMINFORTRAN)/include
- ${guess_SOURCE_DIR}/../oasis3-mct/ecconf/build/lib/psmile.MPI1)
- link_directories(${guess_SOURCE_DIR}/../oasis3-mct/ecconf/lib
- //$(EBROOTNETCDF)/lib64 $(EBROOTNETCDFMINFORTRAN)/lib
- ${guess_SOURCE_DIR}/../oasis3-mct/ecconf/build/lib/psmile.MPI1)
- add_definitions(-DHAVE_NETCDF)
- set(LIBS ${LIBS} psmile.MPI1 mct mpeu scrip
- netcdff netcdf)
- endif()
- if (NOT CMAKE_HOST_WIN32)
- find_package(MPI QUIET)
- endif()
- mark_as_advanced(MPI_LIBRARY MPI_EXTRA_LIBRARY)
- if (MPI_FOUND)
- include_directories(${MPI_INCLUDE_PATH})
- set(LIBS ${LIBS} ${MPI_LIBRARIES})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MPI_COMPILE_FLAGS}")
-
-
-
-
- include_directories($(EBROOTIMPI)/mpi/latest/include)
- link_directories($(EBROOTIMPI)/mpi/latest/lib)
- set(LIBS ${LIBS} mpi mpifort)
- add_definitions(-DHAVE_MPI)
- else()
- include_directories($(EBROOTIMPI)/mpi/latest/include)
- link_directories($(EBROOTIMPI)/mpi/latest/lib)
- add_definitions(-DHAVE_MPI)
- set(LIBS ${LIBS} mpi mpifort)
- endif()
- include_directories(${guess_SOURCE_DIR}/framework
- ${guess_SOURCE_DIR}/libraries/gutil ${guess_SOURCE_DIR}/libraries/plib
- ${guess_SOURCE_DIR}/libraries/guessnc ${guess_SOURCE_DIR}/modules ${guess_SOURCE_DIR}/cru/guessio)
- add_subdirectory(framework)
- add_subdirectory(modules)
- add_subdirectory(cru)
- add_subdirectory(libraries)
- if (UNIT_TESTS)
- add_subdirectory(tests)
- endif()
- if (GRID MATCHES "T255")
- if (WIN32)
-
- set(guess_command_name "guesscmd_T255")
- else()
-
- set(guess_command_name "guess_T255")
- endif()
- elseif(GRID MATCHES "T159")
- if (WIN32)
-
- set(guess_command_name "guesscmd_T159")
- else()
-
- set(guess_command_name "guess_T159")
- endif()
- endif()
- add_executable(${guess_command_name} ${guess_sources} command_line_version/main.cpp)
- if (UNIT_TESTS)
- add_executable(runtests ${guess_sources} ${test_sources})
- endif()
- target_link_libraries(${guess_command_name} ${LIBS})
- if (WIN32)
-
- add_library(guess SHARED ${guess_sources} windows_version/dllmain.cpp)
-
- target_link_libraries(guess ${LIBS})
- endif (WIN32)
- if (UNIT_TESTS)
- add_custom_command(TARGET runtests
- POST_BUILD
- COMMAND runtests
- COMMENT "Running tests")
- endif()
- if (UNIX)
-
-
-
-
- SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
- SET(CMAKE_SHARED_LIBRARY_LINK_CXX_FLAGS "")
- endif(UNIX)
- if (UNIX)
-
- 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)
- endif(UNIX)
|