X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=e9df5963eb25ea92366c7163cbb59b6e3f287100;hb=200da3496cad2ab08207e94aa56b1e2a431ff112;hp=e01208a5bee03cd7cc577cb06b34be85e6023c53;hpb=ccc9e34d94ed2aeafce4d4508888e55ae83cfd4b;p=unres.git diff --git a/CMakeLists.txt b/CMakeLists.txt index e01208a..e9df596 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,10 +9,63 @@ set(UNRES_MAJOR 3) set(UNRES_MINOR 1) set(UNRES_PATCH 0) set(UNRES_VERSION ${UNRES_MAJOR}.${UNRES_MINOR}.${UNRES_PATCH}) - + #====================================== -# CTest stuff +# MACROS +#====================================== + +# Get system date +MACRO (TODAY RESULT) + IF (WIN32) + EXECUTE_PROCESS(COMMAND "date" "/T" OUTPUT_VARIABLE ${RESULT}) + string(REGEX REPLACE "(..)/(..)/..(..).*" "\\3\\2\\1" ${RESULT} ${${RESULT}}) + ELSEIF(UNIX) + EXECUTE_PROCESS(COMMAND "date" OUTPUT_VARIABLE ${RESULT}) + string(REGEX REPLACE "(...) (...) (.+) (..:..:..) (.+) (....).*" "\\1 \\2 \\3 \\4 \\5 \\6" ${RESULT} ${${RESULT}}) + ELSE (WIN32) + MESSAGE(SEND_ERROR "date not implemented") + SET(${RESULT} 000000) + ENDIF (WIN32) +ENDMACRO (TODAY) + +# foramt variables used in cinfo.f +MACRO (CINFO_FORMAT FN VN VD) +# 50 znakowi +# 73 w całej linii +# write(iout,*)'INSTALL_DIR = /users/software/mpich-1.2.7p1_int...' + string(LENGTH "${VN}" VNLEN) + string(LENGTH "${VD}" VDLEN) + set(STR "${VN} ${VD}") + string(LENGTH "${STR}" SUMA) + math(EXPR STRLEN 50-${VNLEN}) +# message("lancuch=${STRLEN}") +# Fit in one line? +# No. + if(SUMA GREATER 50) + string(SUBSTRING "${STR}" 0 50 STR_OUT) +# message(" write(iout,*)'${VAR} = ${STR_OUT}'") + file(APPEND ${FN} " write(iout,*)'${STR_OUT}'\n") + math(EXPR STRLEN ${SUMA}-50) + string(SUBSTRING "${STR}" 50 ${STRLEN} STR) + string(LENGTH "${STR}" STRLEN) + while(STRLEN GREATER 48) +# message("Przycinam lancuch") + string(SUBSTRING "${STR}" 0 48 STR_OUT) + file(APPEND ${FN} " write(iout,*)' ${STR_OUT}'\n") + math(EXPR STRLEN ${STRLEN}-49) + string(SUBSTRING "${STR}" 49 ${STRLEN} STR) + string(LENGTH "${STR}" STRLEN) + endwhile(STRLEN GREATER 48) + file(APPEND ${FN} " write(iout,*)' ${STR}'\n") +# MESSAGE("DLUGOSC = ${VNLEN}; DLUGOSCD = ${VDLEN}; SUMA=${SUMA}; ${VAR} = ${${VAR}} " ) +# Yes + else(SUMA GREATER 50) + file(APPEND ${FN} " write(iout,*)'${STR}'\n") + endif(SUMA GREATER 50) +ENDMACRO (CINFO_FORMAT) #====================================== +# CTest stuff +#======================================A include(CTest) enable_testing() @@ -67,57 +120,19 @@ option(UNRES_NA_MMCE "Kompilujemy na mmmce?" OFF ) # MPI stuff #================================= -# Note for the future - use finde package to get MPI -find_package(MPI) - -#if(MPI_LIBRARY) - -#MPI_INCLUDE_PATH - - -if(MPIF_LOCAL_DIR) - find_library(MPIF_LIBRARY NAMES libmpich.a NO_DEFAULT_PATH PATHS ${MPIF_LOCAL_DIR}/lib) - find_path( MPIF_INCLUDE_DIRECTORIES NAMES mpif.h NO_DEFAULT_PATH PATHS ${MPIF_LOCAL_DIR}/include ) -else(MPIF_LOCAL_DIR) - find_library(MPIF_LIBRARY NAMES mpi mpich PATHS - ${MPI_LIBRARY} - ${MPI_EXTRA_LIBRARY} - /users/local/mpi64/mpich-1.2.7p1/lib - /usr/lib - /usr/local/lib - /usr/local/mpi/lib - ) - find_path( MPIF_INCLUDE_DIRECTORIES NAMES mpif.h PATHS - ${MPI_INCLUDE_PATH} - /users/local/mpi64/mpich-1.2.7p1/include - /usr/include - /usr/local/include - /usr/include/mpi - /usr/local/mpi/include - ) -endif(MPIF_LOCAL_DIR) - -set( MPIF_LIBRARIES ${MPIF_LIBRARY}) - -if ( MPIF_INCLUDE_DIRECTORIES ) - set( MPIF_FOUND TRUE ) +# Note for the future - use find package to get MPI +find_package(MPI QUIET) + +if (MPI_Fortran_FOUND) message("MPI found") -else ( MPIF_INCLUDE_DIRECTORIES ) - set( MPIF_FOUND FALSE ) +else() message("MPI not found - disabling MPI compile flags ") set ( UNRES_WITH_MPI "OFF") -endif ( MPIF_INCLUDE_DIRECTORIES ) - -if (MPIF_FOUND) - message("MPIF_LIBRARIES=${MPIF_LIBRARY}") - message("MPIF_INCLUDE_DIRECTORIES=${MPIF_INCLUDE_DIRECTORIES}" ) -endif(MPIF_FOUND) - - +endif(MPI_Fortran_FOUND) #====================================== # Detect system architecture -# +#======================================= if( CMAKE_SIZEOF_VOID_P EQUAL 4 ) set(architektura "32") @@ -127,6 +142,14 @@ endif( CMAKE_SIZEOF_VOID_P EQUAL 4 ) message("Detected ${architektura}-bit architecture") +#======================================= +# Find other libraries +#======================================= + +# used by unres/src_MIN +find_package (Threads) + + #======================================= # Create diractories for build targets @@ -137,6 +160,7 @@ message("Detected ${architektura}-bit architecture") # Add source files #======================================= +add_subdirectory(source/lib/xdrf) if(UNRES_NA_MMCE) @@ -144,8 +168,12 @@ if(UNRES_NA_MMCE) # Brak MPI dla gfortrana, wiec tylko na ifort sie skompiluje if (Fortran_COMPILER_NAME STREQUAL "ifort") add_subdirectory(source/unres/src_MD) + add_subdirectory(source/unres/src_MD_DFA) add_subdirectory(source/unres/src_MD-M) add_subdirectory(source/unres/src_CSA) + add_subdirectory(source/unres/src_CSA_DiL) + add_subdirectory(source/cluster/wham/src) + add_subdirectory(source/cluster/wham/src-M) endif (Fortran_COMPILER_NAME STREQUAL "ifort") else() add_subdirectory(source/unres/src_MD) @@ -153,15 +181,27 @@ if(UNRES_NA_MMCE) # add_subdirectory(source/unres/src_MD-M) endif() add_subdirectory(source/unres/src_MIN) - + add_subdirectory(source/cluster/unres/src) + add_subdirectory(source/xdrfpdb/src) + add_subdirectory(source/xdrfpdb/src-M) + add_subdirectory(source/maxlik/src_CSA) else() add_subdirectory(source/unres/src_MD) if(UNRES_WITH_MPI) add_subdirectory(source/unres/src_MD-M) + add_subdirectory(source/unres/src_MD_DFA) add_subdirectory(source/unres/src_CSA) + add_subdirectory(source/unres/src_CSA_DiL) + add_subdirectory(source/wham/src) + add_subdirectory(source/wham/src-M) + add_subdirectory(source/cluster/wham/src) + add_subdirectory(source/cluster/wham/src-M) endif(UNRES_WITH_MPI) add_subdirectory(source/unres/src_MIN) - + add_subdirectory(source/cluster/unres/src) + add_subdirectory(source/xdrfpdb/src) + add_subdirectory(source/xdrfpdb/src-M) + add_subdirectory(source/maxlik/src_CSA) endif(UNRES_NA_MMCE)