# Version information
set(Elemental_SHA1 
  ${Elemental_SHA1} PARENT_SCOPE)
set(Elemental_VERSION_MAJOR 
  ${Elemental_VERSION_MAJOR} PARENT_SCOPE)
set(Elemental_VERSION_MINOR 
  ${Elemental_VERSION_MINOR} PARENT_SCOPE)
set(LIBRARY_TYPE 
  ${LIBRARY_TYPE} PARENT_SCOPE)
set(CMAKE_BUILD_TYPE 
  ${CMAKE_BUILD_TYPE} PARENT_SCOPE)
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_BUILD_TYPE)
set(RELEASE 
  ${RELEASE} PARENT_SCOPE)

# C compiler info
set(MPI_C_COMPILER 
  ${MPI_C_COMPILER} PARENT_SCOPE)
set(MPI_C_INCLUDE_PATH 
  ${MPI_C_INCLUDE_PATH} PARENT_SCOPE)
set(MPI_C_COMPILE_FLAGS 
  ${MPI_C_COMPILE_FLAGS} PARENT_SCOPE)
set(MPI_C_LINK_FLAGS 
  ${MPI_C_LINK_FLAGS} PARENT_SCOPE)
set(MPI_C_LIBRARIES 
  ${MPI_C_LIBRARIES} PARENT_SCOPE)

# C++ compiler info
set(CMAKE_CXX_FLAGS_${UPPER_BUILD_TYPE} 
  ${CMAKE_CXX_FLAGS_${UPPER_BUILD_TYPE}} PARENT_SCOPE)
set(MPI_CXX_COMPILER 
  ${MPI_CXX_COMPILER} PARENT_SCOPE)
set(MPI_CXX_INCLUDE_PATH 
  ${MPI_CXX_INCLUDE_PATH} PARENT_SCOPE)
set(MPI_CXX_COMPILE_FLAGS 
  ${MPI_CXX_COMPILE_FLAGS} PARENT_SCOPE)
set(MPI_CXX_LINK_FLAGS 
  ${MPI_CXX_LINK_FLAGS} PARENT_SCOPE)
set(MPI_CXX_LIBRARIES 
  ${MPI_CXX_LIBRARIES} PARENT_SCOPE)

# MPI and math link flags
set(MPI_LINK_FLAGS 
  ${MPI_LINK_FLAGS} PARENT_SCOPE)
set(MATH_LIBS 
  ${MATH_LIBS} PARENT_SCOPE)

# Miscellaneous
set(RESTRICT 
  ${RESTRICT} PARENT_SCOPE)
set(ELEM_BLAS_POST 
  ${ELEM_BLAS_POST} PARENT_SCOPE)
set(ELEM_LAPACK_POST 
  ${ELEM_LAPACK_POST} PARENT_SCOPE)
set(ELEM_HAVE_OPENMP 
  ${ELEM_HAVE_OPENMP} PARENT_SCOPE)
set(ELEM_HAVE_QT5 
  ${ELEM_HAVE_QT5} PARENT_SCOPE)
if(ELEM_HAVE_QT5)
  set(Qt5Widgets_INCLUDE_DIRS 
    ${Qt5Widgets_INCLUDE_DIRS} PARENT_SCOPE)
  set(Qt5Widgets_DEFINITIONS 
    ${Qt5Widgets_DEFINITIONS} PARENT_SCOPE)
endif()
set(ELEM_HAVE_F90_INTERFACE 
  ${ELEM_HAVE_F90_INTERFACE} PARENT_SCOPE)
set(ELEM_AVOID_COMPLEX_MPI 
  ${ELEM_AVOID_COMPLEX_MPI} PARENT_SCOPE)
set(ELEM_HAVE_MPI_REDUCE_SCATTER_BLOCK 
  ${ELEM_HAVE_MPI_REDUCE_SCATTER_BLOCK} PARENT_SCOPE)
set(ELEM_REDUCE_SCATTER_BLOCK_VIA_ALLREDUCE 
  ${ELEM_REDUCE_SCATTER_BLOCK_VIA_ALLREDUCE} PARENT_SCOPE)
set(ELEM_USE_BYTE_ALLGATHERS 
  ${ELEM_USE_BYTE_ALLGATHERS} PARENT_SCOPE)
