..:: PCSX2 Forums ::..

Full Version: PCSX2 for Arch Linux
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
Code:
$ cmake --help-policy CMP0022
cmake version 2.8.12
  CMP0022
       INTERFACE_LINK_LIBRARIES defines the link interface.

       CMake 2.8.11 constructed the 'link interface' of a target from
       properties matching (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?.
       The modern way to specify config-sensitive content is to use generator
       expressions and the IMPORTED_ prefix makes uniform processing of the
       link interface with generator expressions impossible.  The
       INTERFACE_LINK_LIBRARIES target property was introduced as a
       replacement in CMake 2.8.12.  This new property is named consistently
       with the INTERFACE_COMPILE_DEFINITIONS, INTERFACE_INCLUDE_DIRECTORIES
       and INTERFACE_COMPILE_OPTIONS properties.  For in-build targets, CMake
       will use the INTERFACE_LINK_LIBRARIES property as the source of the
       link interface only if policy CMP0022 is NEW.  When exporting a target
       which has this policy set to NEW, only the INTERFACE_LINK_LIBRARIES
       property will be processed and generated for the IMPORTED target by
       default.  A new option to the install(EXPORT) and export commands
       allows export of the old-style properties for compatibility with
       downstream users of CMake versions older than 2.8.12.  The
       target_link_libraries command will no longer populate the properties
       matching LINK_INTERFACE_LIBRARIES(_<CONFIG>)? if this policy is NEW.

       The OLD behavior for this policy is to ignore the
       INTERFACE_LINK_LIBRARIES property for in-build targets.  The NEW
       behavior for this policy is to use the INTERFACE_LINK_LIBRARIES
       property for in-build targets, and ignore the old properties matching
       (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?.

       This policy was introduced in CMake version 2.8.12.  CMake version
       2.8.12 warns when the policy is not set and uses OLD behavior.  Use
       the cmake_policy command to set it to OLD or NEW explicitly.
Do you use this cmake option "-DUSER_CMAKE_LD_FLAGS". If yes remove it for the moment.

Edit: thank josephg Tongue2
(10-17-2013, 08:54 AM)gregory Wrote: [ -> ]THanks. What give you
Code:
cmake --help-policy CMP0022

There you go.

Code:
cmake --help-policy CMP0022
cmake version 2.8.12
  CMP0022
       INTERFACE_LINK_LIBRARIES defines the link interface.

       CMake 2.8.11 constructed the 'link interface' of a target from
       properties matching (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?.
       The modern way to specify config-sensitive content is to use generator
       expressions and the IMPORTED_ prefix makes uniform processing of the
       link interface with generator expressions impossible.  The
       INTERFACE_LINK_LIBRARIES target property was introduced as a
       replacement in CMake 2.8.12.  This new property is named consistently
       with the INTERFACE_COMPILE_DEFINITIONS, INTERFACE_INCLUDE_DIRECTORIES
       and INTERFACE_COMPILE_OPTIONS properties.  For in-build targets, CMake
       will use the INTERFACE_LINK_LIBRARIES property as the source of the
       link interface only if policy CMP0022 is NEW.  When exporting a target
       which has this policy set to NEW, only the INTERFACE_LINK_LIBRARIES
       property will be processed and generated for the IMPORTED target by
       default.  A new option to the install(EXPORT) and export commands
       allows export of the old-style properties for compatibility with
       downstream users of CMake versions older than 2.8.12.  The
       target_link_libraries command will no longer populate the properties
       matching LINK_INTERFACE_LIBRARIES(_<CONFIG>)? if this policy is NEW.

       The OLD behavior for this policy is to ignore the
       INTERFACE_LINK_LIBRARIES property for in-build targets.  The NEW
       behavior for this policy is to use the INTERFACE_LINK_LIBRARIES
       property for in-build targets, and ignore the old properties matching
       (IMPORTED_)?LINK_INTERFACE_LIBRARIES(_<CONFIG>)?.

       This policy was introduced in CMake version 2.8.12.  CMake version
       2.8.12 warns when the policy is not set and uses OLD behavior.  Use
       the cmake_policy command to set it to OLD or NEW explicitly.
@alucryd: Actually I had that answered already Tongue

@gregory: I believe that the flag "-DUSER_CMAKE_LD_FLAGS" was not used. You can see the build script, including cmake command line, here in the PKGBUILD:

Code:
cmake .. -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_BUILD_TYPE='Release' -DPACKAGE_MODE='TRUE' -DXDG_STD='TRUE' -DGLSL_API='TRUE' -DREBUILD_SHADER='TRUE' -DPLUGIN_DIR='/usr/lib32/pcsx2' -DGAMEINDEX_DIR='/usr/share/pcsx2' -DGLSL_SHADER_DIR='/usr/share/pcsx2' -DwxWidgets_CONFIG_EXECUTABLE='/usr/bin/wx-config32' -DwxWidgets_wxrc_EXECUTABLE='/usr/bin/wxrc32' -DCMAKE_LIBRARY_PATH='/usr/lib32'
(10-18-2013, 12:33 PM)josephg Wrote: [ -> ]@alucryd: Actually I had that answered already Tongue

@gregory: I believe that the flag "-DUSER_CMAKE_LD_FLAGS" was not used. You can see the build script, including cmake command line, here in the PKGBUILD:

Code:
cmake .. -DCMAKE_INSTALL_PREFIX='/usr' -DCMAKE_BUILD_TYPE='Release' -DPACKAGE_MODE='TRUE' -DXDG_STD='TRUE' -DGLSL_API='TRUE' -DREBUILD_SHADER='TRUE' -DPLUGIN_DIR='/usr/lib32/pcsx2' -DGAMEINDEX_DIR='/usr/share/pcsx2' -DGLSL_SHADER_DIR='/usr/share/pcsx2' -DwxWidgets_CONFIG_EXECUTABLE='/usr/bin/wx-config32' -DwxWidgets_wxrc_EXECUTABLE='/usr/bin/wxrc32' -DCMAKE_LIBRARY_PATH='/usr/lib32'

josephg: Wow, sorry about that, didn't notice the new page.

gregory: I indeed don't specify -DUSER_CMAKE_LD_FLAGS manually, but I believe our package builder does it implicitely. I already tried unsetting our LDFLAGS variable which contains those flags, but to no avail. I will try forcing -DUSER_CMAKE_LD_FLAGS='' and report here.

Edit: Confirmed that forcing empty flags, either by emptying the LDFLAGS variable, or using -DUSER_CMAKE_LD_FLAGS='' produces the same error message.
Hum strange, in your previous report there were some linker parameters. Anyway can you try this patch?
Code:
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt    (revision 5730)
+++ CMakeLists.txt    (working copy)
@@ -36,6 +36,9 @@
if(POLICY CMP0018)
     cmake_policy(SET CMP0018 OLD)
endif()
+if(POLICY CMP0022)
+    cmake_policy(SET CMP0022 OLD)
+endif()

# Variable to check that people use the good file
set(TOP_CMAKE_WAS_SOURCED TRUE)
(10-19-2013, 10:15 AM)gregory Wrote: [ -> ]Hum strange, in your previous report there were some linker parameters. Anyway can you try this patch?
Code:
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt    (revision 5730)
+++ CMakeLists.txt    (working copy)
@@ -36,6 +36,9 @@
if(POLICY CMP0018)
     cmake_policy(SET CMP0018 OLD)
endif()
+if(POLICY CMP0022)
+    cmake_policy(SET CMP0022 OLD)
+endif()

# Variable to check that people use the good file
set(TOP_CMAKE_WAS_SOURCED TRUE)
Strange indeed, I'm positive I don't set those flags, but they're still there. Maybe they're the default flags for CMake or PCSX2?

Anyway, I already tried enforcing the old policy as you do with your patch and it didn't help, it only removed the warnings saying there's a new policy.
what is the error log with the patch?
Well as I mentioned before, only the CMake error remains, several times the following:

Code:
CMake Error:
  Error evaluating generator expression:

    $<LINK_ONLY:-Wl,-O1,--sort-common,--as-needed,-z,relro>

  $<LINK_ONLY> expression requires exactly one parameter.
For what is worth, it seems the issue is related with the invocation of 'target_link_libraries' of Utilities and x86emitter.

Code:
$ grep -R target_link_libraries common/src/ -A3 -B3
common/src/Utilities/CMakeLists.txt-add_library(${Output} STATIC ${UtilitiesSources} ${UtilitiesHeaders} ${UtilitiesSSources})
common/src/Utilities/CMakeLists.txt-
common/src/Utilities/CMakeLists.txt-# link target with wx
common/src/Utilities/CMakeLists.txt:target_link_libraries(${Output} ${wxWidgets_LIBRARIES})
common/src/Utilities/CMakeLists.txt-
common/src/Utilities/CMakeLists.txt-# Gold (new linux linker) does not get automatically dependency of dependency so you must add
common/src/Utilities/CMakeLists.txt-# them manually.
common/src/Utilities/CMakeLists.txt:target_link_libraries(${Output} ${LIBC_LIBRARIES})
common/src/Utilities/CMakeLists.txt-
common/src/Utilities/CMakeLists.txt-# User flags options
common/src/Utilities/CMakeLists.txt-if(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
common/src/Utilities/CMakeLists.txt:    target_link_libraries(${Output} "${USER_CMAKE_LD_FLAGS}")
common/src/Utilities/CMakeLists.txt-endif(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
--
common/src/x86emitter/CMakeLists.txt-add_library(${Output} STATIC ${x86emitterSources} ${x86emitterHeaders})
common/src/x86emitter/CMakeLists.txt-
common/src/x86emitter/CMakeLists.txt-# link target with wx
common/src/x86emitter/CMakeLists.txt:target_link_libraries(${Output} ${wxWidgets_LIBRARIES})
common/src/x86emitter/CMakeLists.txt-
common/src/x86emitter/CMakeLists.txt-# User flags options
common/src/x86emitter/CMakeLists.txt-if(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
common/src/x86emitter/CMakeLists.txt:    target_link_libraries(${Output} "${USER_CMAKE_LD_FLAGS}")
common/src/x86emitter/CMakeLists.txt-endif(NOT USER_CMAKE_LD_FLAGS STREQUAL "")
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33