Add newer versions to Boost_ADDITIONAL_VERSIONS
[dyninst.git] / cmake / packages.cmake
1 if (UNIX)
2
3 include(ExternalProject)
4
5 find_package (LibElf)
6 if(NOT LIBELF_FOUND)
7 message(STATUS "No libelf found, attempting to build as external project")
8 ExternalProject_Add(LibElf
9         PREFIX ${CMAKE_SOURCE_DIR}/libelf
10         URL http://www.mr511.de/software/libelf-0.8.13.tar.gz
11         CONFIGURE_COMMAND <SOURCE_DIR>/configure --enable-shared --prefix=${CMAKE_SOURCE_DIR}/libelf
12         BUILD_COMMAND make
13         INSTALL_COMMAND make install
14 )
15 set(LIBELF_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/libelf/include)
16 set(LIBELF_LIBRARIES ${CMAKE_SOURCE_DIR}/libelf/lib/libelf.so)
17 endif()
18
19 add_library(libelf_imp SHARED IMPORTED)
20 set_property(TARGET libelf_imp
21                     PROPERTY IMPORTED_LOCATION ${LIBELF_LIBRARIES}) 
22
23 find_package (LibDwarf)
24
25 if(NOT LIBDWARF_FOUND)
26 message(STATUS "No libdwarf found, attempting to build as external project")
27 ExternalProject_Add(LibDwarf
28         PREFIX ${CMAKE_SOURCE_DIR}/libdwarf
29         DEPENDS libelf_imp
30         URL http://reality.sgiweb.org/davea/libdwarf-20130126.tar.gz
31         CONFIGURE_COMMAND CFLAGS=-I${LIBELF_INCLUDE_DIR} LDFLAGS=-L${CMAKE_SOURCE_DIR}/libelf/lib <SOURCE_DIR>/libdwarf/configure --enable-shared
32         BUILD_COMMAND make
33         INSTALL_DIR ${CMAKE_SOURCE_DIR}/libdwarf
34         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
35 )
36 add_dependencies(LibDwarf libelf_imp)
37 target_link_libraries(LibDwarf libelf_imp)
38 #ExternalProject_Get_Property(LibDwarf 
39 set(LIBDWARF_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/libdwarf/include)
40 set(LIBDWARF_LIBRARIES ${CMAKE_SOURCE_DIR}/libdwarf/lib/libdwarf.so)
41 endif()
42
43 add_library(libdwarf_imp SHARED IMPORTED)
44 set_property(TARGET libdwarf_imp 
45                     PROPERTY IMPORTED_LOCATION ${LIBDWARF_LIBRARIES})
46 find_package (LibIberty)
47
48 if(NOT IBERTY_FOUND)
49 ExternalProject_Add(LibIberty
50         PREFIX ${CMAKE_SOURCE_DIR}/binutils
51         URL http://ftp.gnu.org/gnu/binutils/binutils-2.23.tar.gz
52         CONFIGURE_COMMAND CFLAGS=-fPIC CPPFLAGS=-fPIC PICFLAG=-fPIC <SOURCE_DIR>/libiberty/configure --prefix=${CMAKE_SOURCE_DIR}/libiberty --enable-shared
53         BUILD_COMMAND make all
54         INSTALL_DIR ${CMAKE_SOURCE_DIR}/libiberty
55         INSTALL_COMMAND install <BINARY_DIR>/libiberty.a <INSTALL_DIR>
56 )
57 set(IBERTY_LIBRARY ${CMAKE_SOURCE_DIR}/libiberty/libiberty.a)
58 endif()
59
60 message(STATUS "Using libiberty ${IBERTY_LIBRARY}")
61 add_library(libiberty_imp STATIC IMPORTED)
62 set_property(TARGET libiberty_imp
63                     PROPERTY IMPORTED_LOCATION ${IBERTY_LIBRARY})
64
65 find_package (ThreadDB)
66 include_directories (
67                     ${LIBELF_INCLUDE_DIR}
68                     ${LIBDWARF_INCLUDE_DIR}
69 )
70 elseif(WIN32)
71 find_package (DIASDK REQUIRED)
72 include_directories(${DIASDK_INCLUDE_DIR})
73 endif()
74
75 if (PLATFORM MATCHES "bgq")
76 # Not a find per se, just a magic include line
77 set (PATH_BGQ "/bgsys/drivers/ppcfloor" CACHE STRING "Path to BG/Q include files")
78 if (NOT (PATH_BGQ STREQUAL ""))
79 include_directories (${PATH_BGQ})
80 endif()
81 endif()
82
83
84 # UPDATE this for newer versions of Boost if you're using
85 # an older CMake and it complains that it can't find Boost
86 set(Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48" "1.48.0" "1.49" "1.49.0"
87                               "1.50" "1.50.0" "1.51" "1.51.0" "1.52" "1.52.0"
88                               "1.53" "1.53.0" "1.54" "1.54.0")
89
90 set (PATH_BOOST "/usr" CACHE STRING "Path to boost")
91 if (NOT (PATH_BOOST STREQUAL ""))
92   set (CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${PATH_BOOST}/lib ${PATH_BOOST}/lib64)
93   set (CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${PATH_BOOST}/include)
94 endif()
95
96 find_package (Boost REQUIRED)
97
98 include_directories (
99                     ${Boost_INCLUDE_DIRS}
100 )