Skip to content

Commit

Permalink
LLVMClang package: only build one shared library (#1306).
Browse files Browse the repository at this point in the history
We used to build both an LLVM and Clang shared library, but although it works fine on Linux and macOS, it proves crazy on Windows. Indeed, our Clang shared library would need access to loads of LLVM symbols while we only expose those that we need in OpenCOR. To expose all the symbols needed by Clang would be a lot of work, hence we now build only one shared library instead.
  • Loading branch information
agarny committed Jun 7, 2017
1 parent 61b099f commit e8ab739
Showing 1 changed file with 9 additions and 25 deletions.
34 changes: 9 additions & 25 deletions src/plugins/thirdParty/LLVMClang/CMakeLists.txt
Expand Up @@ -23,39 +23,30 @@ SET(FULL_LOCAL_EXTERNAL_PACKAGE_DIR ${PROJECT_SOURCE_DIR}/${LOCAL_EXTERNAL_PACKA
# Name of our package's shared libraries (and of their import libraries, if any)

IF(WIN32)
SET(LLVM_SHARED_LIBRARY LLVM${CMAKE_SHARED_LIBRARY_SUFFIX})
SET(LLVM_IMPORT_LIBRARY LLVM${CMAKE_IMPORT_LIBRARY_SUFFIX})

SET(CLANG_SHARED_LIBRARY Clang${CMAKE_SHARED_LIBRARY_SUFFIX})
SET(CLANG_IMPORT_LIBRARY Clang${CMAKE_IMPORT_LIBRARY_SUFFIX})
SET(SHARED_LIBRARY LLVMClang${CMAKE_SHARED_LIBRARY_SUFFIX})
SET(IMPORT_LIBRARY LLVMClang${CMAKE_IMPORT_LIBRARY_SUFFIX})
ELSE()
SET(LLVM_SHARED_LIBRARY ${CMAKE_SHARED_LIBRARY_PREFIX}LLVM${CMAKE_SHARED_LIBRARY_SUFFIX_PRE}.${MAJOR_LIBRARY_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX_POST})
SET(LLVM_IMPORT_LIBRARY ${LLVM_SHARED_LIBRARY})

SET(CLANG_SHARED_LIBRARY ${CMAKE_SHARED_LIBRARY_PREFIX}Clang${CMAKE_SHARED_LIBRARY_SUFFIX_PRE}.${MAJOR_LIBRARY_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX_POST})
SET(CLANG_IMPORT_LIBRARY ${CLANG_SHARED_LIBRARY})
SET(SHARED_LIBRARY ${CMAKE_SHARED_LIBRARY_PREFIX}LLVMClang${CMAKE_SHARED_LIBRARY_SUFFIX_PRE}.${MAJOR_LIBRARY_VERSION}${CMAKE_SHARED_LIBRARY_SUFFIX_POST})
SET(IMPORT_LIBRARY ${SHARED_LIBRARY})
ENDIF()

# Retrieve our package's binaries

SET(EXTERNAL_BINARIES_DIR ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/lib)

SET(EXTERNAL_BINARIES
${LLVM_SHARED_LIBRARY}
${CLANG_SHARED_LIBRARY}
${SHARED_LIBRARY}
)

# Specify the files that need to have their SHA-1 value checked

SET(SHA1_FILES
lib/${LLVM_SHARED_LIBRARY}
lib/${CLANG_SHARED_LIBRARY}
lib/${SHARED_LIBRARY}
)

IF(WIN32)
LIST(APPEND SHA1_FILES
lib/${LLVM_IMPORT_LIBRARY}
lib/${CLANG_IMPORT_LIBRARY}
lib/${IMPORT_LIBRARY}
)
ENDIF()

Expand Down Expand Up @@ -143,8 +134,7 @@ ELSE()
-DLLVM_INCLUDE_UTILS=OFF
-DLLVM_TARGETS_TO_BUILD=X86
BUILD_BYPRODUCTS
<INSTALL_DIR>/lib/${LLVM_IMPORT_LIBRARY}
<INSTALL_DIR>/lib/${CLANG_IMPORT_LIBRARY}
<INSTALL_DIR>/lib/${IMPORT_LIBRARY}
)

# Package our external project
Expand All @@ -162,13 +152,7 @@ ENDIF()

SET(LLVMCLANG_ROOT_DIR ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR} PARENT_SCOPE)
SET(LLVMCLANG_INCLUDE_DIR ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/include PARENT_SCOPE)
SET(LLVMCLANG_LLVM_LIBRARY ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/lib/${LLVM_IMPORT_LIBRARY} PARENT_SCOPE)
SET(LLVMCLANG_CLANG_LIBRARY ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/lib/${CLANG_IMPORT_LIBRARY} PARENT_SCOPE)
SET(LLVMCLANG_LIBRARIES
${EXTERNAL_BINARIES_DIR}/${LLVMCLANG_LLVM_LIBRARY}
${EXTERNAL_BINARIES_DIR}/${LLVMCLANG_CLANG_LIBRARY}
PARENT_SCOPE
)
SET(LLVMCLANG_LIBRARY ${FULL_LOCAL_EXTERNAL_PACKAGE_DIR}/lib/${IMPORT_LIBRARY} PARENT_SCOPE)

# Add the plugin

Expand Down

0 comments on commit e8ab739

Please sign in to comment.