PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` CMP0083 ------- .. versionadded:: 3.14 To control generation of Position Independent Executable (``PIE``) or not, some flags are required at link time. CMake 3.13 and lower did not add these link flags when :prop_tgt:`POSITION_INDEPENDENT_CODE` is set. The ``OLD`` behavior for this policy is to not manage ``PIE`` link flags. The ``NEW`` behavior is to add link flags if :prop_tgt:`POSITION_INDEPENDENT_CODE` is set: * Set to ``TRUE``: flags to produce a position independent executable are passed to the linker step. For example ``-pie`` for ``GCC``. * Set to ``FALSE``: flags not to produce a position independent executable are passed to the linker step. For example ``-no-pie`` for ``GCC``. * Not set: no flags are passed to the linker step. Since a given linker may not support ``PIE`` flags in all environments in which it is used, it is the project's responsibility to use the :module:`CheckPIESupported` module to check for support to ensure that the :prop_tgt:`POSITION_INDEPENDENT_CODE` target property for executables will be honored at link time. This policy was introduced in CMake version 3.14. Use the :command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly. Unlike most policies, CMake version |release| does not warn when this policy is not set and simply uses ``OLD`` behavior. .. Note:: Android platform has a special handling of ``PIE`` so it is not required to use the :module:`CheckPIESupported` module to ensure flags are passed to the linker. .. include:: DEPRECATED.txt Examples ^^^^^^^^ Behave like CMake 3.13 and do not apply any ``PIE`` flags at link stage. .. code-block:: cmake cmake_minimum_required(VERSION 3.13) project(foo) # ... add_executable(foo ...) set_property(TARGET foo PROPERTY POSITION_INDEPENDENT_CODE TRUE) Use the :module:`CheckPIESupported` module to detect whether ``PIE`` is supported by the current linker and environment. Apply ``PIE`` flags only if the linker supports them. .. code-block:: cmake cmake_minimum_required(VERSION 3.14) # CMP0083 NEW project(foo) include(CheckPIESupported) check_pie_supported() # ... add_executable(foo ...) set_property(TARGET foo PROPERTY POSITION_INDEPENDENT_CODE TRUE)