ZZogl: ERROR: Need GL_EXT_framebuffer_object for multiple render targets
#21
Default include path:
- before Sparsehash 2.0.1: /usr/include/google/sparsehash
- after Sparsehash 2.0.1: /usr/include/sparsehash

Even with the new include dir, the upstream wanted to keep the old include dir for backward compatibility propose. So, sparsehash 2.0.1 had "/usr/include/google" and "/usr/include/sparsehash".

However, version 2.0.1 had a bug: the backward compatibility was set to install in wrong directory. It was installing headers from "/usr/include/google/sparsehash" in "/usr/include/google". This issue was the subject of bug reported I opened in Sparshash site and it already solved.

This is no longer an issue in Sparsehash 2.0.2

Why it doesn't affect Archlinux users anymore? Because 1) I added a workaround using 'sed' to avoid this bug; and 2) Sparsehash in Archlinux was updated to 2.0.2.
Reply

Sponsored links

#22
But, even with the backward compatibility problem solved, at some point PCSX2 will need to change the include dir. But, not right now.
Reply
#23
where is located file that where inside google directory (ie google/dense_hash_set etc... )?
Reply
#24
(02-27-2012, 10:17 AM)gregory Wrote: where is located file that where inside google directory (ie google/dense_hash_set etc... )?

Everything that was inside 'google/' went to 'sparsehash/' and everything that was inside 'google/sparsehash/' went to 'sparsehash/internal/'

The whole issue was 'google/sparsehash' files were being installed in 'google/', so PCSX2's cmake wouldn't find 'google/sparsehash/' files. Blame it on sparsehash's Makefile.

See below how sparsehash's include directory looks like in version 2.0.2 in Archlinux (which already fixed the aforementioned bug). Please notice it provides both old '/usr/include/google/' and new '/usr/include/sparsehash', but the files are the same:
Code:
/usr/include/google/
/usr/include/google/dense_hash_map
/usr/include/google/dense_hash_set
/usr/include/google/sparse_hash_map
/usr/include/google/sparse_hash_set
/usr/include/google/sparsehash/
/usr/include/google/sparsehash/densehashtable.h
/usr/include/google/sparsehash/hashtable-common.h
/usr/include/google/sparsehash/libc_allocator_with_realloc.h
/usr/include/google/sparsehash/sparsehashtable.h
/usr/include/google/sparsetable
/usr/include/google/template_util.h
/usr/include/google/type_traits.h
/usr/include/sparsehash/
/usr/include/sparsehash/dense_hash_map
/usr/include/sparsehash/dense_hash_set
/usr/include/sparsehash/internal/
/usr/include/sparsehash/internal/densehashtable.h
/usr/include/sparsehash/internal/hashtable-common.h
/usr/include/sparsehash/internal/libc_allocator_with_realloc.h
/usr/include/sparsehash/internal/sparseconfig.h
/usr/include/sparsehash/internal/sparsehashtable.h
/usr/include/sparsehash/sparse_hash_map
/usr/include/sparsehash/sparse_hash_set
/usr/include/sparsehash/sparsetable
/usr/include/sparsehash/template_util.h
/usr/include/sparsehash/type_traits.h
Reply
#25
josephg,

Can you test this patch on archlinux? I update cmake to detect the 2 package and to select the compilation path with a define.

Thanks you.
Reply
#26
For tests proposes, I downgraded Sparsehash to 2.0.1, therefore I tested using as only valid headers path /usr/include/sparsehash/{,internal}

All files were patched - I double-checked.

The 'Find' step of cmake returned the following message:
Code:
...
-- Could NOT find SparseHash (missing:  SPARSEHASH_INCLUDE_DIR)
-- Found SparseHash_new: /usr/include
...

Then, it failed to compile at:
Code:
...
Scanning dependencies of target pcsx2
[ 35%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Cache.cpp.o
[ 35%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/COP0.cpp.o
[ 35%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/COP2.cpp.o
[ 35%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/Counters.cpp.o
[ 36%] Building CXX object pcsx2/CMakeFiles/pcsx2.dir/GameDatabase.cpp.o
In file included from /home/rafael/builds/pcsx2-svn/src/pcsx2-build/pcsx2/GameDatabase.h:20:0,
                 from /home/rafael/builds/pcsx2-svn/src/pcsx2-build/pcsx2/GameDatabase.cpp:17:
/home/rafael/builds/pcsx2-svn/src/pcsx2-build/common/include/Utilities/HashMap.h:28:46: fatal error: google/sparsehash/densehashtable.h: No such file or directory
compilation terminated.
make[2]: ** [pcsx2/CMakeFiles/pcsx2.dir/GameDatabase.cpp.o] Error 1
make[1]: ** [pcsx2/CMakeFiles/pcsx2.dir/all] Error 2
make: ** [all] Error 2
Reply
#27
Hum. Ok, here a new patch that also changes the define inside pcsx2 compilation instead of only common library.
Reply
#28
yep, it works
Reply




Users browsing this thread: 1 Guest(s)