Remove unnecessary "move" on shared pointer
[alexxy/gromacs.git] / src / gromacs / gmxlib / CMakeLists.txt
1 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2
3 # The nonbonded directory contains subdirectories that are only
4 # conditionally built, so we cannot use a GLOB_RECURSE here.
5 file(GLOB GMXLIB_SOURCES *.c *.cpp
6      statistics/*.c nonbonded/*.c nonbonded/nb_kernel_c/*.c
7      nonbonded/nb_kernel_adress_c/*.c)
8
9 if(GMX_DOUBLE)
10   set(SSETYPE sse2)
11 else()
12   set(SSETYPE sse)
13 endif()
14
15 if(GMX_IA32_ASM)
16   file(GLOB GMX_SSEKERNEL_C_SRC   nonbonded/nb_kernel_ia32_${SSETYPE}/*.c)
17   if(GMX_ASM_USEASM_NASM)
18     file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*intel_syntax*.s)    
19   else()
20     file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_ia32_${SSETYPE}/*${SSETYPE}.s nonbonded/nb_kernel_ia32_${SSETYPE}/*asm.s)
21   endif()
22 endif(GMX_IA32_ASM)
23
24 if(GMX_X86_64_ASM)
25   file(GLOB GMX_SSEKERNEL_C_SRC   nonbonded/nb_kernel_x86_64_${SSETYPE}/*.c)
26   if(GMX_ASM_USEASM_NASM)
27     file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*intel_syntax*.s)
28   else()
29     file(GLOB GMX_SSEKERNEL_ASM_SRC nonbonded/nb_kernel_x86_64_${SSETYPE}/*${SSETYPE}.s nonbonded/nb_kernel_x86_64_${SSETYPE}/*asm.s)
30   endif()
31 endif(GMX_X86_64_ASM)
32
33 if(GMX_FORTRAN)
34   if (GMX_DOUBLE)
35     file(GLOB FORTRAN_SOURCES nonbonded/nb_kernel_f77_double/*.[cf])
36   else(GMX_DOUBLE)
37     file(GLOB FORTRAN_SOURCES nonbonded/nb_kernel_f77_single/*.[cf])
38   endif(GMX_DOUBLE)
39 endif(GMX_FORTRAN)
40
41 if(GMX_POWER6)
42   file(GLOB FORTRAN_SOURCES nonbonded/nb_kernel_power6/*.[cF])
43 endif(GMX_POWER6)
44
45 if(GMX_BLUEGENE)
46   file(GLOB GMX_BLUEGENE_C_SRC nonbonded/nb_kernel_bluegene/*.c)
47 endif(GMX_BLUEGENE)
48
49 if(GMX_PPC_ALTIVEC)
50   file(GLOB GMX_PPC_ALTIVEC_SRC nonbonded/nb_kernel_ppc_altivec/*.c)
51 endif(GMX_PPC_ALTIVEC)
52
53 # This would be the standard way to include thread_mpi, but we want libgmx
54 # to link the functions directly
55 #if(GMX_THREAD_MPI)
56 #    add_subdirectory(thread_mpi)
57 #endif(GMX_THREAD_MPI)
58 #target_link_libraries(gmx ${GMX_EXTRA_LIBRARIES} ${THREAD_MPI_LIB})
59
60 # Files called xxx_test.c are test drivers with a main() function for module xxx.c,
61 # so they should not be included in the library
62 file(GLOB_RECURSE NOT_GMXLIB_SOURCES *_test.c *\#*)
63 list(REMOVE_ITEM GMXLIB_SOURCES ${NOT_GMXLIB_SOURCES})  
64
65 if(GMX_USE_PLUGINS)
66   set(GMXLIB_SOURCES ${GMXLIB_SOURCES} ${CMAKE_SOURCE_DIR}/src/external/vmd_molfile/vmddlopen.c)
67 else()
68   list(REMOVE_ITEM GMXLIB_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/vmdio.c)
69 endif()
70
71 # An ugly hack to get absolute paths...
72 file(GLOB THREAD_MPI_SOURCES ${THREAD_MPI_SRC})
73 file(GLOB THREAD_MPI_CXX_SOURCES ${THREAD_MPI_CXX_SRC})
74
75 set(GMX_SSEKERNEL_ASM_SRC ${GMX_SSEKERNEL_ASM_SRC} PARENT_SCOPE)
76 set(GMXLIB_SOURCES ${GMXLIB_SOURCES}
77     ${GMX_SSEKERNEL_C_SRC} ${FORTRAN_SOURCES}
78     ${GMX_BLUEGENE_C_SRC} ${GMX_PPC_ALTIVEC_SRC} ${THREAD_MPI_SOURCES}
79     ${THREAD_MPI_CXX_SOURCES}
80     PARENT_SCOPE)