diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 71 |
1 files changed, 61 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index ec95845..52ffc21 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,66 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 3.3) +cmake_minimum_required(VERSION 3.3) -# Name & Version -PROJECT(LLVM_SPIRV - VERSION 0.1.0.0 - LANGUAGES CXX) +# check if we build inside llvm or not +if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + set(BUILD_EXTERNAL YES) + project(LLVM_SPIRV + VERSION + 0.1.0.0 + LANGUAGES + CXX + ) + + set(CMAKE_CXX_STANDARD 11) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + + if(LLVM_INCLUDE_TESTS) + set(LLVM_TEST_COMPONENTS + llvm-as + llvm-dis + ) + endif(LLVM_INCLUDE_TESTS) + + find_package(LLVM 7.0.0 REQUIRED + COMPONENTS + Analysis + BitReader + BitWriter + Core + Support + TransformUtils + ${LLVM_TEST_COMPONENTS} + ) + set(CMAKE_MODULE_PATH + ${CMAKE_MODULE_PATH} + ${LLVM_CMAKE_DIR} + ) + include(AddLLVM) + + message(STATUS "Found LLVM: ${LLVM_VERSION}") +else(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) + set(BUILD_EXTERNAL NO) +endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) -message(STATUS "LLVM-SPIRV found at ${CMAKE_CURRENT_SOURCE_DIR}") set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include) -set(LLVM_SPIRV_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) +add_subdirectory(lib/SPIRV) +add_subdirectory(tools/llvm-spirv) +if(LLVM_INCLUDE_TESTS) + add_subdirectory(test) +endif(LLVM_INCLUDE_TESTS) + +install( + FILES + ${LLVM_SPIRV_INCLUDE_DIRS}/SPIRV.h + DESTINATION + include +) -SUBDIRS(lib/SPIRV tools/llvm-spirv test) +get_target_property(LLVMSPIRVlib_LIBDIR LLVMSPIRVLib BINARY_DIR) +configure_file(LLVMSPIRVLib.pc.in ${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc @ONLY) +install( + FILES + ${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc + DESTINATION + ${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}/pkgconfig +) |