CMakeLists.txt 1.41 KB
Newer Older
COULAUD Olivier's avatar
COULAUD Olivier committed
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(UTILS_SCALFMM CXX)
COULAUD Olivier's avatar
COULAUD Olivier committed
8
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BUILD_TYPE})
9
ADD_DEFINITIONS( ${SCALFMM_CXX_FLAGS})
COULAUD Olivier's avatar
COULAUD Olivier committed
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
Olivier Coulaud's avatar
Olivier Coulaud committed
22
     ${SCALFMM_INCLUDES}
COULAUD Olivier's avatar
COULAUD Olivier committed
23 24 25 26 27 28 29 30 31 32
)


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

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

	# 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}
			)
	
                   # Install bin
                   install( TARGETS ${execname}   DESTINATION bin )
		endif()

endforeach(exec)