CMakeLists.txt 1.42 KB
Newer Older
1 2 3 4 5 6
# check if compiling into source directories
STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
if(insource)
    MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto scalfmm/Build and tapes cmake ../")
endif(insource)

7
project(EXAMPLES_SCALFMM CXX)
8
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE})
9
#ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS})
10 11 12 13 14 15 16 17 18 19
# Find all code files
file(	
	GLOB_RECURSE
	source_tests_files
	./*.cpp
	)


# Adding the project sources dir as an include dir
INCLUDE_DIRECTORIES(
20 21
     ${SCALFMM_BINARY_DIR}/Src 
     ${SCALFMM_SOURCE_DIR}/Src 
22 23
     ${SCALFMM_INCLUDES}
     
24 25 26 27 28 29 30 31 32 33
)


# Add execs - 1 cpp = 1 exec
foreach(exec ${source_tests_files}) 
	get_filename_component(
		execname ${exec}
		NAME_WE
	)

34 35 36 37 38
	set(compile_exec "TRUE")
	
	foreach(fuse_key ${FUSE_LIST})
	    file(STRINGS "${exec}" lines_fuse REGEX "@FUSE_${fuse_key}")
	    if(lines_fuse)
39
		    if( NOT SCALFMM_USE_${fuse_key} )
40 41 42 43 44
			    MESSAGE( STATUS "This needs ${fuse_key} = ${exec}" )
			    set(compile_exec "FALSE")
		    endif()
	    endif()
	endforeach()
45 46 47 48 49 50 51 52 53 54 55 56 57

	# Dependency are OK
	if( compile_exec )
		add_executable(
				${execname}
				${exec}
				)
		SET_TARGET_PROPERTIES(${execname} PROPERTIES ENABLE_EXPORTS TRUE)
		target_link_libraries(
			${execname}
			${scalfmm_lib}
			${SCALFMM_LIBRARIES}
			)
58
	
59 60 61 62
                   # Install bin
                   install( TARGETS ${execname}   DESTINATION bin )
		endif()

63
endforeach(exec)