4 message(STATUS "No libelf found, attempting to build as external project")
5 cmake_minimum_required (VERSION 2.8.11)
6 include(ExternalProject)
7 ExternalProject_Add(LibElf
8 PREFIX ${CMAKE_BINARY_DIR}/libelf
9 URL http://www.mr511.de/software/libelf-0.8.13.tar.gz
10 CONFIGURE_COMMAND <SOURCE_DIR>/configure --enable-shared --prefix=${CMAKE_BINARY_DIR}/libelf
12 INSTALL_COMMAND make install
14 set(LIBELF_INCLUDE_DIR ${CMAKE_BINARY_DIR}/libelf/include)
15 set(LIBELF_LIBRARIES ${CMAKE_BINARY_DIR}/libelf/lib/libelf.so)
16 set(SHOULD_INSTALL_LIBELF 1)
18 set(SHOULD_INSTALL_LIBELF 0)
21 add_library(libelf_imp SHARED IMPORTED)
22 set_property(TARGET libelf_imp
23 PROPERTY IMPORTED_LOCATION ${LIBELF_LIBRARIES})
25 find_package (LibDwarf)
27 if(NOT LIBDWARF_FOUND)
28 message(STATUS "No libdwarf found, attempting to build as external project")
29 cmake_minimum_required (VERSION 2.8.11)
30 include(ExternalProject)
31 ExternalProject_Add(LibDwarf
32 PREFIX ${CMAKE_BINARY_DIR}/libdwarf
34 # URL http://reality.sgiweb.org/davea/libdwarf-20130126.tar.gz
35 # URL http://sourceforge.net/p/libdwarf/code/ci/20130126/tarball
36 URL http://www.paradyn.org/libdwarf/libdwarf-20130126.tar.gz
37 # GIT_REPOSITORY git://git.code.sf.net/p/libdwarf/code libdwarf-code
39 CONFIGURE_COMMAND CFLAGS=-I${LIBELF_INCLUDE_DIR} LDFLAGS=-L${CMAKE_BINARY_DIR}/libelf/lib <SOURCE_DIR>/libdwarf/configure --enable-shared
41 INSTALL_DIR ${CMAKE_BINARY_DIR}/libdwarf
42 INSTALL_COMMAND mkdir -p <INSTALL_DIR>/include && mkdir -p <INSTALL_DIR>/lib && install <SOURCE_DIR>/libdwarf/libdwarf.h <INSTALL_DIR>/include && install <SOURCE_DIR>/libdwarf/dwarf.h <INSTALL_DIR>/include && install <BINARY_DIR>/libdwarf.so <INSTALL_DIR>/lib
44 add_dependencies(LibDwarf libelf_imp)
45 target_link_libraries(LibDwarf libelf_imp)
46 #ExternalProject_Get_Property(LibDwarf
47 set(LIBDWARF_INCLUDE_DIR ${CMAKE_BINARY_DIR}/libdwarf/include)
48 set(LIBDWARF_LIBRARIES ${CMAKE_BINARY_DIR}/libdwarf/lib/libdwarf.so)
51 add_library(libdwarf_imp SHARED IMPORTED)
52 set_property(TARGET libdwarf_imp
53 PROPERTY IMPORTED_LOCATION ${LIBDWARF_LIBRARIES})
55 if (NOT USE_GNU_DEMANGLER)
56 find_package (LibIberty)
59 cmake_minimum_required (VERSION 2.8.11)
60 include(ExternalProject)
61 ExternalProject_Add(LibIberty
62 PREFIX ${CMAKE_BINARY_DIR}/binutils
63 URL http://ftp.gnu.org/gnu/binutils/binutils-2.23.tar.gz
64 CONFIGURE_COMMAND CFLAGS=-fPIC CPPFLAGS=-fPIC PICFLAG=-fPIC <SOURCE_DIR>/libiberty/configure --prefix=${CMAKE_BINARY_DIR}/libiberty --enable-shared
65 BUILD_COMMAND make all
66 INSTALL_DIR ${CMAKE_BINARY_DIR}/libiberty
67 INSTALL_COMMAND install <BINARY_DIR>/libiberty.a <INSTALL_DIR>
69 set(IBERTY_LIBRARY ${CMAKE_BINARY_DIR}/libiberty/libiberty.a)
72 message(STATUS "Using libiberty ${IBERTY_LIBRARY}")
73 add_library(libiberty_imp STATIC IMPORTED)
74 set_property(TARGET libiberty_imp
75 PROPERTY IMPORTED_LOCATION ${IBERTY_LIBRARY})
78 find_package (ThreadDB)
81 ${LIBDWARF_INCLUDE_DIR}
84 find_package (DIASDK REQUIRED)
85 include_directories(${DIASDK_INCLUDE_DIR})
88 if (PLATFORM MATCHES "bgq")
89 # Not a find per se, just a magic include line
90 set (PATH_BGQ "/bgsys/drivers/ppcfloor" CACHE STRING "Path to BG/Q include files")
91 if (NOT (PATH_BGQ STREQUAL ""))
92 include_directories (${PATH_BGQ})
97 # UPDATE this for newer versions of Boost if you're using
98 # an older CMake and it complains that it can't find Boost
99 set(Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48" "1.48.0" "1.49" "1.49.0"
100 "1.50" "1.50.0" "1.51" "1.51.0" "1.52" "1.52.0"
101 "1.53" "1.53.0" "1.54" "1.54.0" "1.55" "1.55.0")
104 set (PATH_BOOST "/usr" CACHE STRING "Path to boost")
106 set(Boost_USE_MULTITHREADED ON)
107 set(Boost_USE_STATIC_RUNTIME OFF)
109 if (NOT ("${Boost_NO_BOOST_CMAKE}" STREQUAL "OFF"))
110 message(STATUS "Disabling Boost's own CMake--known buggy in many cases")
111 set(Boost_NO_BOOST_CMAKE ON)
113 if (NOT ("${PATH_BOOST}" STREQUAL ""))
114 set (CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${PATH_BOOST}/lib ${PATH_BOOST}/lib64)
115 set (CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${PATH_BOOST}/include)
118 # Boost 1.40/1.41 are not compatible with each other
119 # so ensure that we don't mix incompatible headers with
121 #set (BOOST_MIN_VERSION 1.41.0)
123 find_package (Boost ${BOOST_MIN_VERSION} REQUIRED COMPONENTS thread system)
125 link_directories ( ${Boost_LIBRARY_DIRS} )
127 include_directories (
128 ${Boost_INCLUDE_DIRS}
131 message(STATUS "Boost includes: ${Boost_INCLUDE_DIRS}")
132 message(STATUS "Boost library dirs: ${Boost_LIBRARY_DIRS}")
133 message(STATUS "Boost thread library: ${Boost_THREAD_LIBRARY}")
134 message(STATUS "Boost libraries: ${Boost_LIBRARIES}")