
# This file is automatically generated by the Dyninst testing system.
# For more information, see core/testsuite/src/specification/cmake_mutators.py

######################################################################
# A list of all the mutators to be compiled
######################################################################


include_directories ("..src/proccontrol")
set (proccontrol_MUTATORS
	pc_launch
	pc_thread_cont
	pc_breakpoint
	pc_library
	pc_addlibrary
	pc_singlestep
	pc_thread
	pc_groups
	pc_stat
	pc_irpc
	pc_detach
	pc_temp_detach
	pc_terminate
	pc_terminate_stopped
	pc_mem_perm
)

set (proccontrol_OBJS_ALL_MUTATORS
	pc_launch.obj
	pc_thread_cont.obj
	pc_breakpoint.obj
	pc_library.obj
	pc_addlibrary.obj
	pc_singlestep.obj
	pc_thread.obj
	pc_groups.obj
	pc_stat.obj
	pc_irpc.obj
	pc_detach.obj
	pc_temp_detach.obj
	pc_terminate.obj
	pc_terminate_stopped.obj
	pc_mem_perm.obj
)


include_directories ("..src/dyninst")
set (dyninst_MUTATORS
	test1_1
	test1_2
	test1_3
	test1_4
	test1_5
	test1_6
	test1_7
	test1_8
	test1_9
	test1_10
	test1_11
	test1_12
	test1_13
	test1_14
	test1_15
	test1_16
	test1_17
	test1_18
	test1_19
	test1_20
	test1_21
	test1_22
	test_reloc
	snip_ref_shlib_var
	snip_change_shlib_var
	test_snip_remove
	test1_23
	test1_24
	test1_25
	test1_26
	test1_27
	test1_28
	test1_29
	test1_30
	test1_31
	test1_32
	test1_33
	test1_34
	test1_36
	test1_37
	test1_38
	test_write_param
	test2_1
	test2_2
	test2_3
	test2_4
	test2_5
	test2_7
	test2_8
	test2_12
	test2_13
	test2_14
	test3_1
	test3_2
	test3_3
	test3_4
	test3_7
	test4_1
	test5_1
	test5_2
	test5_3
	test5_4
	test5_5
	test5_7
	test5_8
	test5_9
	test_stack_1
	test_stack_3
	test_thread_6
	test_thread_7
	test_thread_8
)

set (dyninst_OBJS_ALL_MUTATORS
	test1_1.obj
	test1_2.obj
	test1_3.obj
	test1_4.obj
	test1_5.obj
	test1_6.obj
	test1_7.obj
	test1_8.obj
	test1_9.obj
	test1_10.obj
	test1_11.obj
	test1_12.obj
	test1_13.obj
	test1_14.obj
	test1_15.obj
	test1_16.obj
	test1_17.obj
	test1_18.obj
	test1_19.obj
	test1_20.obj
	test1_21.obj
	test1_22.obj
	test_reloc.obj
	snip_ref_shlib_var.obj
	snip_change_shlib_var.obj
	test_snip_remove.obj
	test1_23.obj
	test1_24.obj
	test1_25.obj
	test1_26.obj
	test1_27.obj
	test1_28.obj
	test1_29.obj
	test1_30.obj
	test1_31.obj
	test1_32.obj
	test1_33.obj
	test1_34.obj
	test1_36.obj
	test1_37.obj
	test1_38.obj
	test_write_param.obj
	test2_1.obj
	test2_2.obj
	test2_3.obj
	test2_4.obj
	test2_5.obj
	test2_7.obj
	test2_8.obj
	test2_12.obj
	test2_13.obj
	test2_14.obj
	test3_1.obj
	test3_2.obj
	test3_3.obj
	test3_4.obj
	test3_7.obj
	test4_1.obj
	test5_1.obj
	test5_2.obj
	test5_3.obj
	test5_4.obj
	test5_5.obj
	test5_7.obj
	test5_8.obj
	test5_9.obj
	test_stack_1.obj
	test_stack_3.obj
	test_thread_6.obj
	test_thread_7.obj
	test_thread_8.obj
)


include_directories ("..src/instruction")
set (instruction_MUTATORS
	test_instruction_read_write
	test_instruction_farcall
	test_instruction_bind_eval
	power_decode
	aarch64_decode
	aarch64_cft
	aarch64_decode_ldst
	aarch64_simd
	power_cft
	fucompp
	mov_size_details
)

set (instruction_OBJS_ALL_MUTATORS
	test_instruction_read_write.obj
	test_instruction_farcall.obj
	test_instruction_bind_eval.obj
	power_decode.obj
	aarch64_decode.obj
	aarch64_cft.obj
	aarch64_decode_ldst.obj
	aarch64_simd.obj
	power_cft.obj
	fucompp.obj
	mov_size_details.obj
)


include_directories ("..src/symtab")
set (symtab_MUTATORS
	test_lookup_func
	test_lookup_var
	test_local_var_lookup
	test_local_var_locations
	test_line_info
	test_module
	test_type_info
)

set (symtab_OBJS_ALL_MUTATORS
	test_lookup_func.obj
	test_lookup_var.obj
	test_local_var_lookup.obj
	test_local_var_locations.obj
	test_line_info.obj
	test_module.obj
	test_type_info.obj
)

set (MUTATOR_NAME_LIST
	aarch64_cft
	aarch64_decode
	aarch64_decode_ldst
	aarch64_simd
	fucompp
	mov_size_details
	pc_addlibrary
	pc_breakpoint
	pc_detach
	pc_groups
	pc_irpc
	pc_launch
	pc_library
	pc_mem_perm
	pc_singlestep
	pc_stat
	pc_temp_detach
	pc_terminate
	pc_terminate_stopped
	pc_thread
	pc_thread_cont
	power_cft
	power_decode
	snip_change_shlib_var
	snip_ref_shlib_var
	test1_1
	test1_10
	test1_11
	test1_12
	test1_13
	test1_14
	test1_15
	test1_16
	test1_17
	test1_18
	test1_19
	test1_2
	test1_20
	test1_21
	test1_22
	test1_23
	test1_24
	test1_25
	test1_26
	test1_27
	test1_28
	test1_29
	test1_3
	test1_30
	test1_31
	test1_32
	test1_33
	test1_34
	test1_36
	test1_37
	test1_38
	test1_4
	test1_5
	test1_6
	test1_7
	test1_8
	test1_9
	test2_1
	test2_12
	test2_13
	test2_14
	test2_2
	test2_3
	test2_4
	test2_5
	test2_7
	test2_8
	test3_1
	test3_2
	test3_3
	test3_4
	test3_7
	test4_1
	test5_1
	test5_2
	test5_3
	test5_4
	test5_5
	test5_7
	test5_8
	test5_9
	test_instruction_bind_eval
	test_instruction_farcall
	test_instruction_read_write
	test_line_info
	test_local_var_locations
	test_local_var_lookup
	test_lookup_func
	test_lookup_var
	test_module
	test_reloc
	test_snip_remove
	test_stack_1
	test_stack_3
	test_thread_6
	test_thread_7
	test_thread_8
	test_type_info
	test_write_param
	)

set (MUTATOR_MODULE_LIB_LIST
	testinstruction
	testinstruction
	testinstruction
	testinstruction
	testinstruction
	testinstruction
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testproccontrol
	testinstruction
	testinstruction
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testinstruction
	testinstruction
	testinstruction
	testsymtab
	testsymtab
	testsymtab
	testsymtab
	testsymtab
	testsymtab
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testdyninst
	testsymtab
	testdyninst
	)

set (SRC src)
set (MUTATOR_SOURCE_LIST
	${SRC}/instruction/aarch64_cft.C
	${SRC}/instruction/aarch64_decode.C
	${SRC}/instruction/aarch64_decode_ldst.C
	${SRC}/instruction/aarch64_simd.C
	${SRC}/instruction/fucompp.C
	${SRC}/instruction/mov_size_details.C
	${SRC}/proccontrol/pc_addlibrary.C
	${SRC}/proccontrol/pc_breakpoint.C
	${SRC}/proccontrol/pc_detach.C
	${SRC}/proccontrol/pc_groups.C
	${SRC}/proccontrol/pc_irpc.C
	${SRC}/proccontrol/pc_launch.C
	${SRC}/proccontrol/pc_library.C
	${SRC}/proccontrol/pc_mem_perm.C
	${SRC}/proccontrol/pc_singlestep.C
	${SRC}/proccontrol/pc_stat.C
	${SRC}/proccontrol/pc_temp_detach.C
	${SRC}/proccontrol/pc_terminate.C
	${SRC}/proccontrol/pc_terminate_stopped.C
	${SRC}/proccontrol/pc_thread.C
	${SRC}/proccontrol/pc_thread_cont.C
	${SRC}/instruction/power_cft.C
	${SRC}/instruction/power_decode.C
	${SRC}/dyninst/snip_change_shlib_var.C
	${SRC}/dyninst/snip_ref_shlib_var.C
	${SRC}/dyninst/test1_1.C
	${SRC}/dyninst/test1_10.C
	${SRC}/dyninst/test1_11.C
	${SRC}/dyninst/test1_12.C
	${SRC}/dyninst/test1_13.C
	${SRC}/dyninst/test1_14.C
	${SRC}/dyninst/test1_15.C
	${SRC}/dyninst/test1_16.C
	${SRC}/dyninst/test1_17.C
	${SRC}/dyninst/test1_18.C
	${SRC}/dyninst/test1_19.C
	${SRC}/dyninst/test1_2.C
	${SRC}/dyninst/test1_20.C
	${SRC}/dyninst/test1_21.C
	${SRC}/dyninst/test1_22.C
	${SRC}/dyninst/test1_23.C
	${SRC}/dyninst/test1_24.C
	${SRC}/dyninst/test1_25.C
	${SRC}/dyninst/test1_26.C
	${SRC}/dyninst/test1_27.C
	${SRC}/dyninst/test1_28.C
	${SRC}/dyninst/test1_29.C
	${SRC}/dyninst/test1_3.C
	${SRC}/dyninst/test1_30.C
	${SRC}/dyninst/test1_31.C
	${SRC}/dyninst/test1_32.C
	${SRC}/dyninst/test1_33.C
	${SRC}/dyninst/test1_34.C
	${SRC}/dyninst/test1_36.C
	${SRC}/dyninst/test1_37.C
	${SRC}/dyninst/test1_38.C
	${SRC}/dyninst/test1_4.C
	${SRC}/dyninst/test1_5.C
	${SRC}/dyninst/test1_6.C
	${SRC}/dyninst/test1_7.C
	${SRC}/dyninst/test1_8.C
	${SRC}/dyninst/test1_9.C
	${SRC}/dyninst/test2_1.C
	${SRC}/dyninst/test2_12.C
	${SRC}/dyninst/test2_13.C
	${SRC}/dyninst/test2_14.C
	${SRC}/dyninst/test2_2.C
	${SRC}/dyninst/test2_3.C
	${SRC}/dyninst/test2_4.C
	${SRC}/dyninst/test2_5.C
	${SRC}/dyninst/test2_7.C
	${SRC}/dyninst/test2_8.C
	${SRC}/dyninst/test3_1.C
	${SRC}/dyninst/test3_2.C
	${SRC}/dyninst/test3_3.C
	${SRC}/dyninst/test3_4.C
	${SRC}/dyninst/test3_7.C
	${SRC}/dyninst/test4_1.C
	${SRC}/dyninst/test5_1.C
	${SRC}/dyninst/test5_2.C
	${SRC}/dyninst/test5_3.C
	${SRC}/dyninst/test5_4.C
	${SRC}/dyninst/test5_5.C
	${SRC}/dyninst/test5_7.C
	${SRC}/dyninst/test5_8.C
	${SRC}/dyninst/test5_9.C
	${SRC}/instruction/test_instruction_bind_eval.C
	${SRC}/instruction/test_instruction_farcall.C
	${SRC}/instruction/test_instruction_read_write.C
	${SRC}/symtab/test_line_info.C
	${SRC}/symtab/test_local_var_locations.C
	${SRC}/symtab/test_local_var_lookup.C
	${SRC}/symtab/test_lookup_func.C
	${SRC}/symtab/test_lookup_var.C
	${SRC}/symtab/test_module.C
	${SRC}/dyninst/test_reloc.C
	${SRC}/dyninst/test_snip_remove.C
	${SRC}/dyninst/test_stack_1.C
	${SRC}/dyninst/test_stack_3.C
	${SRC}/dyninst/test_thread_6.C
	${SRC}/dyninst/test_thread_7.C
	${SRC}/dyninst/test_thread_8.C
	${SRC}/symtab/test_type_info.C
	${SRC}/dyninst/test_write_param.C
	)

foreach (val RANGE 103)
	list (GET MUTATOR_NAME_LIST ${val} lib)
	list (GET MUTATOR_SOURCE_LIST ${val} source)
	list (GET MUTATOR_MODULE_LIB_LIST ${val} comp_dep)
	set(SKIP FALSE)
	foreach (dep ${comp_dep})
		if(NOT TARGET ${dep})
			set(SKIP TRUE)
		endif()
	endforeach()
	if(NOT SKIP)
		add_library (${lib} ${source})
		target_link_libraries (${lib} ${comp_dep} ${LIBTESTSUITE})
		install (TARGETS ${lib} 
		         RUNTIME DESTINATION ${INSTALL_DIR}
		         LIBRARY DESTINATION ${INSTALL_DIR})
	endif()
endforeach()

