diff -ur OpenGTL-0.9.15.1/cmake/modules/FindLLVM.cmake OpenGTL-0.9.15.1-shared-llvm/cmake/modules/FindLLVM.cmake --- OpenGTL-0.9.15.1/cmake/modules/FindLLVM.cmake 2011-04-10 11:03:22.000000000 +0200 +++ OpenGTL-0.9.15.1-shared-llvm/cmake/modules/FindLLVM.cmake 2011-10-10 22:11:13.000000000 +0200 @@ -33,29 +33,30 @@ /opt/local/bin ) - MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR) - exec_program( perl ARGS ${LLVM_CONFIG_EXECUTABLE} --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} ) - STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}}) - SEPARATE_ARGUMENTS(${OBJECT_VAR}) - STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}}) - ENDMACRO(FIND_LLVM_LIBS) - + exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_VERSION ) exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libdir OUTPUT_VARIABLE LLVM_LIB_DIR ) exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --includedir OUTPUT_VARIABLE LLVM_INCLUDE_DIR ) + find_library(LLVM_SHARED_LIB NAMES LLVM-${LLVM_VERSION} PATHS ${LLVM_LIB_DIR}) exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --cxxflags OUTPUT_VARIABLE LLVM_COMPILE_FLAGS ) STRING(REGEX MATCH "PIC" LLVM_COMPILE_FLAGS_PIC ${LLVM_COMPILE_FLAGS} ) STRING(REGEX MATCH "NDEBUG" LLVM_COMPILE_FLAGS_NDEBUG ${LLVM_COMPILE_FLAGS} ) - if(LLVM_COMPILE_FLAGS_PIC) - message(STATUS "llvm was compiled with pic") + if(LLVM_SHARED_LIB) + message(STATUS "llvm was compiled as a shared library") + # assume the shared library is PIC, otherwise the build is very broken set(LLVM_COMPILED_WITH_PIC TRUE) - else(LLVM_COMPILE_FLAGS_PIC) - set(LLVM_COMPILED_WITH_PIC FALSE) - endif(LLVM_COMPILE_FLAGS_PIC) + else(LLVM_SHARED_LIB) + if(LLVM_COMPILE_FLAGS_PIC) + message(STATUS "llvm was compiled with pic") + set(LLVM_COMPILED_WITH_PIC TRUE) + else(LLVM_COMPILE_FLAGS_PIC) + set(LLVM_COMPILED_WITH_PIC FALSE) + endif(LLVM_COMPILE_FLAGS_PIC) + endif(LLVM_SHARED_LIB) if(LLVM_COMPILE_FLAGS_NDEBUG) message(STATUS "llvm was compiled without assert") @@ -64,9 +65,25 @@ set(LLVM_COMPILED_WITHOUT_ASSERTS FALSE) endif(LLVM_COMPILE_FLAGS_NDEBUG) - exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS ) - exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libs core OUTPUT_VARIABLE LLVM_LIBS_CORE ) - exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --version OUTPUT_VARIABLE LLVM_VERSION ) + if(LLVM_SHARED_LIB) + set(LLVM_LDFLAGS "") + set(LLVM_LIBS_CORE ${LLVM_SHARED_LIB}) + else(LLVM_SHARED_LIB) + exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --ldflags OUTPUT_VARIABLE LLVM_LDFLAGS ) + exec_program(${LLVM_CONFIG_EXECUTABLE} ARGS --libs core OUTPUT_VARIABLE LLVM_LIBS_CORE ) + endif(LLVM_SHARED_LIB) + + MACRO(FIND_LLVM_LIBS LLVM_CONFIG_EXECUTABLE _libname_ LIB_VAR OBJECT_VAR) + if(LLVM_SHARED_LIB) + set(${LIB_VAR} ${LLVM_SHARED_LIB}) + set(${OBJECT_VAR} "") + else(LLVM_SHARED_LIB) + exec_program( perl ARGS ${LLVM_CONFIG_EXECUTABLE} --libs ${_libname_} OUTPUT_VARIABLE ${LIB_VAR} ) + STRING(REGEX MATCHALL "[^ ]*[.]o[ $]" ${OBJECT_VAR} ${${LIB_VAR}}) + SEPARATE_ARGUMENTS(${OBJECT_VAR}) + STRING(REGEX REPLACE "[^ ]*[.]o[ $]" "" ${LIB_VAR} ${${LIB_VAR}}) + endif(LLVM_SHARED_LIB) + ENDMACRO(FIND_LLVM_LIBS) if(LLVM_INCLUDE_DIR) set(LLVM_FOUND TRUE)