diff --git a/CMakeLists.txt b/CMakeLists.txt index eb1391238..5f8823567 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -37,8 +37,6 @@ set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_COMPILE_WARNING_AS_ERROR ON) - option(ICEBERG_BUILD_STATIC "Build static library" ON) option(ICEBERG_BUILD_SHARED "Build shared library" OFF) option(ICEBERG_BUILD_TESTS "Build tests" ON) diff --git a/cmake_modules/IcebergBuildUtils.cmake b/cmake_modules/IcebergBuildUtils.cmake index 74b029708..da23f37a2 100644 --- a/cmake_modules/IcebergBuildUtils.cmake +++ b/cmake_modules/IcebergBuildUtils.cmake @@ -113,6 +113,7 @@ function(add_iceberg_lib LIB_NAME) if(BUILD_SHARED) add_library(${LIB_NAME}_shared SHARED) + set_target_properties(${LIB_NAME}_shared PROPERTIES COMPILE_WARNING_AS_ERROR ON) if(LIB_DEPS) target_sources(${LIB_NAME}_shared PRIVATE ${LIB_DEPS}) @@ -172,6 +173,7 @@ function(add_iceberg_lib LIB_NAME) if(BUILD_STATIC) add_library(${LIB_NAME}_static STATIC) + set_target_properties(${LIB_NAME}_static PROPERTIES COMPILE_WARNING_AS_ERROR ON) if(LIB_DEPS) target_sources(${LIB_NAME}_static PRIVATE ${LIB_DEPS}) diff --git a/cmake_modules/IcebergThirdpartyToolchain.cmake b/cmake_modules/IcebergThirdpartyToolchain.cmake index 825a5a054..34ad6d910 100644 --- a/cmake_modules/IcebergThirdpartyToolchain.cmake +++ b/cmake_modules/IcebergThirdpartyToolchain.cmake @@ -151,6 +151,10 @@ endmacro() function(resolve_arrow_dependency) prepare_fetchcontent() + # Prevent Arrow from injecting -Werror into CMAKE_CXX_FLAGS_DEBUG via + # arrow_add_werror_if_debug(). PRODUCTION level only adds standard warnings. + set(BUILD_WARNING_LEVEL PRODUCTION) + set(ARROW_BUILD_SHARED OFF) set(ARROW_BUILD_STATIC ON) # Work around undefined symbol: arrow::ipc::ReadSchema(arrow::io::InputStream*, arrow::ipc::DictionaryMemo*) diff --git a/src/iceberg/test/CMakeLists.txt b/src/iceberg/test/CMakeLists.txt index b3592d8e2..7a1b45b70 100644 --- a/src/iceberg/test/CMakeLists.txt +++ b/src/iceberg/test/CMakeLists.txt @@ -15,8 +15,6 @@ # specific language governing permissions and limitations # under the License. -set(CMAKE_COMPILE_WARNING_AS_ERROR FALSE) - set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)