Blame dwarfdump/CMakeLists.txt

Packit cdaae3
include(configure.cmake)
Packit cdaae3
Packit cdaae3
add_library(esb_and_tsearchbal OBJECT esb.c dwarf_tsearchbal.c)
Packit cdaae3
Packit cdaae3
set_folder(esb_and_tsearchbal dwarfdump)
Packit cdaae3
Packit cdaae3
target_include_directories(esb_and_tsearchbal PRIVATE
Packit cdaae3
    $<TARGET_PROPERTY:${dwarf-target},INTERFACE_INCLUDE_DIRECTORIES>)
Packit cdaae3
Packit cdaae3
msvc_posix(esb_and_tsearchbal)
Packit cdaae3
Packit cdaae3
set_source_group(SOURCES "Source Files" addrmap.c checkutil.c dwarfdump.c dwconf.c helpertree.c 
Packit cdaae3
	glflags.c
Packit cdaae3
	macrocheck.c print_abbrevs.c print_aranges.c print_debugfission.c print_die.c 
Packit cdaae3
	print_dnames.c print_frames.c  print_gdbindex.c
Packit cdaae3
	print_lines.c print_locs.c print_macro.c print_macros.c print_pubnames.c print_ranges.c print_reloc.c 
Packit cdaae3
	print_sections.c  print_section_groups.c print_static_funcs.c  print_static_vars.c print_strings.c print_types.c print_weaknames.c  
Packit cdaae3
	sanitized.c section_bitmaps.c strstrnocase.c uri.c dwgetopt.c makename.c naming.c common.c $<TARGET_OBJECTS:esb_and_tsearchbal>)
Packit cdaae3
	
Packit cdaae3
set_source_group(HEADERS "Header Files" checkutil.h common.h dwconf.h dwgetopt.h esb.h glflags.h globals.h macrocheck.h 
Packit cdaae3
	makename.h dwarf_tsearch.h print_frames.h section_bitmaps.h uri.h)
Packit cdaae3
Packit cdaae3
set_source_group(CONFIGURATION_FILES "Configuration Files" configure.cmake config.h.in.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
Packit cdaae3
	
Packit cdaae3
set_source_group(TAG_GENERATED "Generated Files" tmp-tt-table.c tmp-ta-table.c tmp-ta-ext-table.c tmp-tt-ext-table.c)
Packit cdaae3
Packit cdaae3
add_executable(dwarfdump ${SOURCES} ${HEADERS} ${TAG_GENERATED} ${CONFIGURATION_FILES})
Packit cdaae3
Packit cdaae3
set_folder(dwarfdump dwarfdump)
Packit cdaae3
Packit cdaae3
target_compile_options(dwarfdump PRIVATE ${dwfwall})
Packit cdaae3
Packit cdaae3
target_compile_definitions(dwarfdump PRIVATE "CONFPREFIX=${CMAKE_INSTALL_PREFIX}/lib")
Packit cdaae3
Packit cdaae3
target_link_libraries(dwarfdump PRIVATE ${dwarf-target} ${dwfzlib}) 
Packit cdaae3
Packit cdaae3
# We need this as naming.o has external references we cannot have
Packit cdaae3
# in the tree builds.
Packit cdaae3
configure_file(naming.c trivial_naming.c COPYONLY)
Packit cdaae3
Packit cdaae3
set_source_files_properties(trivial_naming.c PROPERTIES COMPILE_DEFINITIONS TRIVIAL_NAMING)
Packit cdaae3
Packit cdaae3
set(TAG_TREE_SOURCES tag_tree.c tag_common.c common.c makename.c trivial_naming.c dwgetopt.c dwarf_tsearchbal.c sanitized.c esb.c)
Packit cdaae3
Packit cdaae3
add_executable(tag_tree_build ${TAG_TREE_SOURCES})
Packit cdaae3
Packit cdaae3
set_folder(tag_tree_build dwarfdump/generators)
Packit cdaae3
Packit cdaae3
target_link_libraries(tag_tree_build PRIVATE ${dwarf-target})
Packit cdaae3
Packit cdaae3
set(TAG_ATTR_SOURCES tag_attr.c tag_common.c common.c makename.c trivial_naming.c dwgetopt.c dwarf_tsearchbal.c sanitized.c esb.c)
Packit cdaae3
 
Packit cdaae3
add_executable(tag_attr_build ${TAG_ATTR_SOURCES}) 
Packit cdaae3
Packit cdaae3
set_folder(tag_attr_build dwarfdump/generators)
Packit cdaae3
Packit cdaae3
target_link_libraries(tag_attr_build PRIVATE ${dwarf-target})
Packit cdaae3
Packit cdaae3
# Plain GNU C dash E does not work on a .list, 
Packit cdaae3
# so copy to a .c name to run
Packit cdaae3
# the following four table creations.
Packit cdaae3
set(TAG_LIST_FILES tag_tree.list tag_attr.list tag_attr_ext.list tag_tree_ext.list)
Packit cdaae3
set(TAG_SWITCH -s -s -e -e)
Packit cdaae3
set(TAG_TOOL tag_tree_build tag_attr_build tag_attr_build tag_tree_build)
Packit cdaae3
foreach(i RANGE 0 3)
Packit cdaae3
    list(GET TAG_GENERATED ${i} generatedFile)
Packit cdaae3
    list(GET TAG_LIST_FILES ${i} listFile)
Packit cdaae3
    list(GET TAG_SWITCH ${i} tagSwitch)
Packit cdaae3
    list(GET TAG_TOOL ${i} tagTool)
Packit cdaae3
    
Packit cdaae3
    math(EXPR j "${i} + 1")
Packit cdaae3
    
Packit cdaae3
    set(tmpSouce tmp-t${j})
Packit cdaae3
	set(tmpDest tmp-tag-build${j}.tmp)
Packit cdaae3
    
Packit cdaae3
    configure_file(${listFile} ${tmpSouce}.c COPYONLY)
Packit cdaae3
    
Packit cdaae3
    add_custom_command(OUTPUT ${generatedFile}
Packit cdaae3
		COMMAND ${CMAKE_C_COMPILER} -E -I${CMAKE_CURRENT_SOURCE_DIR}/../libdwarf -DCONFPREFIX=${CMAKE_INSTALL_PREFIX}/lib ${tmpSouce}.c > ${tmpDest}
Packit cdaae3
        COMMAND ${tagTool} ${tagSwitch} -i ${tmpDest} -o ${generatedFile}
Packit cdaae3
        DEPENDS ${tagTool} ${listFile})
Packit cdaae3
endforeach()
Packit cdaae3
	
Packit cdaae3
set_source_group(TESTESB_SOURCES "Source Files" esb.c testesb.c)
Packit cdaae3
Packit cdaae3
add_executable(testesb ${TESTESB_SOURCES})
Packit cdaae3
Packit cdaae3
set_folder(testesb dwarfdump/tests)
Packit cdaae3
Packit cdaae3
target_include_directories(testesb PRIVATE
Packit cdaae3
    $<TARGET_PROPERTY:${dwarf-target},INTERFACE_INCLUDE_DIRECTORIES>)
Packit cdaae3
Packit cdaae3
add_test(NAME test COMMAND testesb)
Packit cdaae3
Packit cdaae3
set_source_group(GETOPTEST_SOURCES "Source Files" getopttest.c dwgetopt.c)
Packit cdaae3
Packit cdaae3
add_executable(getopttest ${GETOPTEST_SOURCES})
Packit cdaae3
Packit cdaae3
set_folder(getopttest dwarfdump/tests)
Packit cdaae3
Packit cdaae3
add_test(NAME getopttest COMMAND getopttest)
Packit cdaae3
Packit cdaae3
add_executable(getopttestnat ${GETOPTEST_SOURCES})
Packit cdaae3
Packit cdaae3
set_folder(getopttestnat dwarfdump/tests)
Packit cdaae3
Packit cdaae3
if(UNIX)
Packit cdaae3
	target_compile_definitions(getopttestnat PRIVATE GETOPT_FROM_SYSTEM)
Packit cdaae3
endif()
Packit cdaae3
Packit cdaae3
foreach(i 1 2 3 5 6 7 8)
Packit cdaae3
	add_test(NAME getopttestnat${i} COMMAND getopttestnat -c ${i})
Packit cdaae3
endforeach()
Packit cdaae3
	
Packit cdaae3
set_source_group(SELFHELPERTREE_SOURCES "Source Files" helpertree.c)
Packit cdaae3
Packit cdaae3
add_executable(selfhelpertree ${SELFHELPERTREE_SOURCES} $<TARGET_OBJECTS:esb_and_tsearchbal>)
Packit cdaae3
Packit cdaae3
set_folder(selfhelpertree dwarfdump/tests)
Packit cdaae3
Packit cdaae3
target_compile_definitions(selfhelpertree PRIVATE SELFTEST)
Packit cdaae3
Packit cdaae3
target_include_directories(selfhelpertree PRIVATE
Packit cdaae3
    $<TARGET_PROPERTY:${dwarf-target},INTERFACE_INCLUDE_DIRECTORIES>)
Packit cdaae3
Packit cdaae3
add_test(NAME selfhelpertree COMMAND selfhelpertree)
Packit cdaae3
Packit cdaae3
#doesn't compile	
Packit cdaae3
#set_source_group(SELFMC_SOURCES "Source Files" macrocheck.c $<TARGET_OBJECTS:esb_and_tsearchbal>)
Packit cdaae3
#
Packit cdaae3
#add_executable(selfmc ${SELFMC_SOURCES})
Packit cdaae3
#
Packit cdaae3
# set_folder(selfmc dwarfdump/tests)
Packit cdaae3
#
Packit cdaae3
#target_compile_definitions(selfmc PRIVATE SELFTEST)
Packit cdaae3
#
Packit cdaae3
#target_include_directories(selfmc PRIVATE
Packit cdaae3
#    $<TARGET_PROPERTY:${dwarf-target},INTERFACE_INCLUDE_DIRECTORIES>)
Packit cdaae3
#
Packit cdaae3
#add_test(NAME selfmc COMMAND selfmc)
Packit cdaae3
	
Packit cdaae3
set_source_group(SELFESB_SOURCES "Source Files" esb.c)
Packit cdaae3
Packit cdaae3
add_executable(selfesb ${SELFESB_SOURCES})
Packit cdaae3
Packit cdaae3
set_folder(selfesb dwarfdump/tests)
Packit cdaae3
Packit cdaae3
target_compile_definitions(selfesb PRIVATE SELFTEST)
Packit cdaae3
Packit cdaae3
target_include_directories(selfesb PRIVATE
Packit cdaae3
    $<TARGET_PROPERTY:${dwarf-target},INTERFACE_INCLUDE_DIRECTORIES>)
Packit cdaae3
Packit cdaae3
add_test(NAME selfesb COMMAND selfesb)
Packit cdaae3
Packit cdaae3
if(${CMAKE_SIZEOF_VOID_P} EQUAL 8)
Packit cdaae3
	set(SUFFIX 64)
Packit cdaae3
endif()
Packit cdaae3
set(LIBDIR lib${SUFFIX})
Packit cdaae3
set(BINDIR bin${SUFFIX})
Packit cdaae3
Packit cdaae3
install(TARGETS dwarfdump DESTINATION
Packit cdaae3
	RUNTIME DESTINATION ${BINDIR}		
Packit cdaae3
	LIBRARY DESTINATION ${LIBDIR}
Packit cdaae3
	ARCHIVE DESTINATION ${LIBDIR})
Packit cdaae3
Packit cdaae3
install(FILES dwarfdump.conf DESTINATION ${LIBDIR})
Packit cdaae3
Packit cdaae3
install(FILES dwarfdump.1 DESTINATION share/man/man1)