Browse Source

Fix precompiling header file for Clang. [ci rebase]

Yao Wei Tjong 姚伟忠 11 years ago
parent
commit
f50ffaff8c
1 changed files with 3 additions and 2 deletions
  1. 3 2
      CMake/Modules/Urho3D-CMake-common.cmake

+ 3 - 2
CMake/Modules/Urho3D-CMake-common.cmake

@@ -492,14 +492,15 @@ macro (enable_pch)
                         string (MAKE_C_IDENTIFIER ${EXPORT_IMPORT_CONDITION} EXPORT_IMPORT_CONDITION)
                         string (MAKE_C_IDENTIFIER ${EXPORT_IMPORT_CONDITION} EXPORT_IMPORT_CONDITION)
                     endif ()
                     endif ()
                     list (APPEND COMPILE_DEFINITIONS ${EXPORT_IMPORT_CONDITION})
                     list (APPEND COMPILE_DEFINITIONS ${EXPORT_IMPORT_CONDITION})
-                    set (PIC -fPIC)
+                    # Below is a hack as it assumes the compiler is modern enough to support these flags
+                    set (COMPILER_EXPORT_FLAGS "-fPIC -fvisibility=hidden -fvisibility-inlines-hidden")
                 endif ()
                 endif ()
                 string (REPLACE ";" " -D" COMPILE_DEFINITIONS "-D${COMPILE_DEFINITIONS}")
                 string (REPLACE ";" " -D" COMPILE_DEFINITIONS "-D${COMPILE_DEFINITIONS}")
                 string (REPLACE ";" " -I" INCLUDE_DIRECTORIES "-I${INCLUDE_DIRECTORIES}")
                 string (REPLACE ";" " -I" INCLUDE_DIRECTORIES "-I${INCLUDE_DIRECTORIES}")
                 file (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${PCH_FILENAME})
                 file (MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${PCH_FILENAME})
                 foreach (CONFIG ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
                 foreach (CONFIG ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE})
                     string (TOUPPER ${CONFIG} UPPERCASE_CONFIG)
                     string (TOUPPER ${CONFIG} UPPERCASE_CONFIG)
-                    file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp.new "${COMPILE_DEFINITIONS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPERCASE_CONFIG}} ${PIC} ${INCLUDE_DIRECTORIES}")
+                    file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp.new "${COMPILE_DEFINITIONS} ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPERCASE_CONFIG}} ${COMPILER_EXPORT_FLAGS} ${INCLUDE_DIRECTORIES}")
                     execute_process (COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp.new ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp)
                     execute_process (COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp.new ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp)
                     file (REMOVE ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp.new)
                     file (REMOVE ${CMAKE_CURRENT_BINARY_DIR}/Precompiled.h.${CONFIG}.rsp.new)
                     # Make sure the precompiled headers are not stale
                     # Make sure the precompiled headers are not stale