Added test MPI preprocessor compile definitions
[unres.git] / source / unres / src_MD / CMakeLists.txt
1 #
2 # CMake project file for UNRES
3 #
4
5 enable_language (Fortran)
6
7 # xdrf library 
8 add_subdirectory(xdrf)
9
10 # Set sources
11 set(UNRES_MD_SRC0 unres.F arcos.f cartprint.f chainbuild.F convert.f 
12         initialize_p.F matmult.f readrtns.F parmread.F gen_rand_conf.F
13         printmat.f map.f pinorm.f randgens.f rescode.f intcor.f timing.F
14         misc.f intlocal.f cartder.F checkder_p.F econstr_local.F
15         minimize_p.F sumsld.f cored.f rmdd.f geomout.F readpdb.F regularize.F
16         thread.F fitsq.f mcm.F mc.F bond_move.f refsys.f check_sc_distr.f
17         check_bond.f contact.f djacob.f eigen.f blas.f add.f entmcm.F
18         minim_mcmf.F MP.F compare_s1.F prng_32.F banach.f rmsd.F elecont.f dihed_cons.F sc_move.F 
19         local_move.f intcartderiv.F lagrangian_lesyng.F stochfric.F kinetic_lesyng.f MD_A-MTS.F moments.f
20         int_to_cart.f surfatom.f sort.f muca_md.f MREMD.F rattle.F gauss.f energy_split-sep.F 
21         q_measure.F gnmr1.f test.F )
22
23
24 set(UNRES_MD_SRC3 energy_p_new_barrier.F energy_p_new-sep_barrier.F gradient_p.F )
25
26 set(UNRES_MD_PP_SRC cartder.F chainbuild.F checkder_p.F compare_s1.F dihed_cons.F econstr_local.F 
27         energy_p_new_barrier.F energy_p_new-sep_barrier.F energy_split-sep.F entmcm.F gen_rand_conf.F
28         geomout.F gradient_p.F initialize_p.F intcartderiv.F lagrangian_lesyng.F mc.F mcm.F MD_A-MTS.F
29         minimize_p.F minim_mcmf.F MP.F MREMD.F parmread.F prng_32.F q_measure1.F q_measure3.F q_measure.F
30         rattle.F readpdb.F readrtns.F regularize.F rmsd.F sc_move.F stochfric.F test.F thread.F timing.F
31         unres.F ) 
32
33 # Set compiler flags for different sourcefiles
34 set(FFLAGS0 "-O3 -ip -w -I${MPIF_INCLUDE_DIRECTORIES}" ) 
35 set(FFLAGS1 "-c -w -g -d2 -CA -CB -I${MPIF_INCLUDE_DIRECTORIES}" ) 
36 set(FFLAGS2 "-c -w -g -00 -I${MPIF_INCLUDE_DIRECTORIES} ")
37 set(FFLAGS3 "-c -w -O3 -ipo -ipo_obj -opt_report -I${MPIF_INCLUDE_DIRECTORIES}" )
38
39 set_property(SOURCE ${UNRES_MD_SRC0} PROPERTY COMPILE_FLAGS ${FFLAGS0} )
40 #set_property(SOURCE ${UNRES_MD_SRC1} PROPERTY COMPILE_FLAGS ${FFLAGS1} )
41 #set_property(SOURCE ${UNRES_MD_SRC2} PROPERTY COMPILE_FLAGS ${FFLAGS2} )
42 set_property(SOURCE ${UNRES_MD_SRC3} PROPERTY COMPILE_FLAGS ${FFLAGS3} )
43
44 # Compile code
45
46 if(UNRES_FF STREQUAL "GAB")
47 # GAB forcefield compile Conditions 
48
49 if (Fortran_COMPILER_NAME STREQUAL "ifort")
50 # do ifort specific stuff
51 # set preprocesor flags 
52   set(CPPFLAGS "-DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANGO -DCRYST_BOND -DCRYST_THETA -DCRYST_SC" )
53 # Apply them to *.F sources
54 #add_definitions( ${CPPFLAGS} ) 
55
56 #SET(CMAKE_Fortran_COMPILE_OBJECT "<CMAKE_Fortran_COMPILER> ${CMAKE_START_TEMP_FILE} <FLAGS> -DLINUX -c <SOURCE> -o <OBJECT> ${CMAKE_END_TEMP_FILE}")
57 #  set_property(SOURCE readrtns.F PROPERTY COMPILE_DEFINITIONS "-DMPI"  )  
58 # Set output binary 
59   set(UNRES_BIN "unres_ifort_MPICH_GAB.exe" )
60 endif (Fortran_COMPILER_NAME STREQUAL "ifort")
61
62
63 else(UNRES_FF strequal "E0LL2Y")
64   set(CPPFLAGS -DPROCOR -DLINUX -DPGI -DUNRES -DISNAN -DMP -DMPI -DSPLITELE -DLANG0 )
65 endif()
66
67 set_property(SOURCE compinfo.c PROPERTY CMAKE_C_FLAGS "" )
68 add_executable(compinfo compinfo.c)
69 add_custom_command(OUTPUT cinfo.f COMMAND ${CMAKE_CURRENT_BINARY_DIR}/compinfo | true )
70 #set_property(TARGET ${UNRES_BIN} PROPERTY COMPILE_DEFINITIONS MPI )
71 add_executable(${UNRES_BIN} ${UNRES_MD_SRC0} ${UNRES_MD_SRC3} cinfo.f )
72