diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2017-10-09 18:53:29 +0100 |
commit | 4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch) | |
tree | ba5f07bf3f9d22d82e54a462313f5d244036c768 /media-libs/opencv |
reinit the tree, so we can have metadata
Diffstat (limited to 'media-libs/opencv')
27 files changed, 2971 insertions, 0 deletions
diff --git a/media-libs/opencv/Manifest b/media-libs/opencv/Manifest new file mode 100644 index 000000000000..82308b5ecd42 --- /dev/null +++ b/media-libs/opencv/Manifest @@ -0,0 +1,38 @@ +AUX opencv-2.3.1a-libav-0.7.patch 415 SHA256 3186998b7b9eaae061d538633276c7de47b2388b639106e190d80dcf09fb9099 SHA512 b17466470a47876e1a8434367f47ce13ec989bdc35ec707d87188187e08b8ccca6af4c5563f20b3170758582b500323030cff22961a7fbbc6b4843d8bb808f1e WHIRLPOOL 5caf84c49efef118e1c90f6bd88237c6d91e9b37163248e5a6f6c135ae60f5f4f4328d83f061df2c4d5f81fdf68faa5b55828feaf67707956701c633614cc5fc +AUX opencv-2.4.13-gcc-6.0.patch 1068 SHA256 bd3a3c6b01049af2a3b45f0757afe78e1fd0269370141067809f9e995cb60359 SHA512 b5dced5d0816d7560c827db06000e770de22b0b3a703ab078bf1cdde4202a5bbe223e5021c9d0e99eeb93c7622a89b9fa03e5ae8bd4a8d3b2df12f014b7e5ca9 WHIRLPOOL d6bf1aa3af01b43d228da07d0f1ab2f25e21f4686dd4b8d5ae57e4c187cd2a57a03dcae061a02c2c68aca45a083dec1494cc1c69c3ffd3222d082d4ec68230b0 +AUX opencv-2.4.13-imgcodecs-refactoring.patch 19899 SHA256 8a9a57b3f64e4995232e8778527bb7c11dd733b29f654c8012e2fd45e9d46feb SHA512 2fae29c7190930f1a2657641d42e0484d4ce6a4562d52cd1522b3b4e9d56468ef7b3d313088270fbb778e5f412f02e149164c38174d95e397e9f2b7d5a1b404b WHIRLPOOL 681a2a315e88c033cc6820e74198ad1bd35a554d4095e74bf58c73b45b3e8fcdb34b9d30e2a6bb5dc32e07a2512ae3b130fd72b2bcbd4c81a2a48c4600a5532f +AUX opencv-2.4.2-cflags.patch 742 SHA256 7ea8c07becb830fb03c14bfbf6c25fdfeaf3fcb75949b810520f4fd6c1178c1c SHA512 b92c07d8c9c40ad7721e0cca2d79b001f825478a336ad40cb43d02218fcd9e8b94b871575028ca8eaf6616cfce8138c796f32d4cf55d83d5cbe819ec50cf7c82 WHIRLPOOL f83ee4b677490cf6981b5a326ae6a7ad4cfae1c27fc6c516d054337939957d801ff1319798d2b0b9e86429b8d688f514e74b74bfff56c64df06fc3c7035f320e +AUX opencv-2.4.3-gcc47.patch 835 SHA256 bb64b8af632b67293d1c8024b3786162fccc9f4ee4159f6592af0e76e86b7b00 SHA512 cc5e3e4c0def0745867403e990abf4b88d7d3edc72867a283403a991fd96f59c4cca6524ca184a52a40c913cd5d9cdfb52e98be71d5060fc4c7aa6b613a2a220 WHIRLPOOL 52aa228d8ebf2ba51eb67cc31ba4eee27f43d5fc86d3b5028e32e2a8caf1350ebda70bab2a060f9a387312795788b575253d446380645e52e7cf10f57cad9a88 +AUX opencv-2.4.8-javamagic.patch 1165 SHA256 b13037b93683ee8e6f535cbbd8742005e675e13a11ebd6593815625c3328bfec SHA512 fd8a0d33997889c9316c0a4474c836b2528b676cd26bbb0e6ee2262377e45c5a0c465534831bd7fec3c0aa9cb198bc792a53f958b05a5217009314b678076d64 WHIRLPOOL 405901f0de77d1f16dc9d28deec6a56062bbfd514994ec094f468ea2298a15111067031cef33ce92b4c237539ed2ee294ec54e2ea6b5c739466e879c291af964 +AUX opencv-2.4.9-cuda-pkg-config.patch 373 SHA256 18ef4f87f3effcc1306c81ff8134a5863a694988efddc16ac36b15892d403b76 SHA512 5b8f931758c6c8edfc3cae35a16d1c8674f17716f13b424ee0510eb313f06ed334b80205262e6bfcce22db235467cad81fddfa96e0cf669972794cc8524f6937 WHIRLPOOL c19c4b3acc6944a3218cba55b38875f417a8755e9616dc26a1541a189452bf7f01fcbbde3436290752d8fa75caebd39b3335eb8beca697e06a4a86cd8dfa0e27 +AUX opencv-3.0.0-gles.patch 481 SHA256 043a77f1726e1fe35d8b103bc8d3cfddd186db3cc7577d2e362da813f51a9c3e SHA512 37cac226bc39b91a87e4891e1d58169a0c2723240215670ebaecbfaf9b066b571296041fc5140aff7274cc44ca132b6f1b3bd4cf6d6dd23b950cac6eca548ad9 WHIRLPOOL a6f9f1022d29175cc6c5a1e08960178de254f2b1ff8c7714929020851d1f38934c6fee54239aed3f47e8c4005ee9ac359999f5f407d97cd684ebf28458044058 +AUX opencv-3.1.0-cmake-no-opengl.patch 867 SHA256 82896a7cdc6c636ba1c3cb08adcc242909e9c799b4e87fe9f6a0015d7ca922d4 SHA512 668a41e2bc4419c3b5f0e0e89f3b62514a9f3489bf8db4d32653288688894c9b647c7abbe45b3f23ec1dcf7dfb645ef308ceb61ab87129229fde0ba87346bb20 WHIRLPOOL 8db9068fb8ceff36a91db3a24ee6e7b6f944d9d0304ee33d41173f1260f3f55732fb055136611ecb5d5c6432c3d44a587496b93c4ac271719bfb56bf263ad103 +AUX opencv-3.1.0-find-libraries-fix.patch 2056 SHA256 da44d0fed6405bca3757f23919e39e67f869849da1227e2cbbd17d716222ad79 SHA512 3246a866f347f5f9715edf1ae759ef7097bc2fe54dab84838cf1e229bcbcc33d5c97224a13ab20546615cee03d4475b3ec1b44ee894676808b7212f1b4b45bd2 WHIRLPOOL 1ebbba2e0bb92444dbf7862e405a734cfc807a9c6e360863c6897b0222b4ff1dc7b49320e7ac3a2c984e16caa0b99011500581cde30b345266fd7a9511374c53 +AUX opencv-3.1.0-git-autodetect.patch 1417 SHA256 6127b60642c89e37677c63d67e7478cac41dcc0a3b8bd2cd2af22924f723f9ab SHA512 af437e6f57a716f26b6840f32f89042fc6886e13ab8111cfc3b3a67694362705ea54128e898588184105b3cac37e451514cb84aff18fab24f54d5960d9aad3f7 WHIRLPOOL 9e92b2f7da5251a40a5a6b581bd3c3f930a43e026ff5ede3bc38d612847984bdfeaef968e988d6dda15d14901557c8138ec0243e5602ea641e369fe326fb73ca +AUX opencv-3.1.0-java-magic.patch 2302 SHA256 637ff44da4fb2063af4876e2bd214cdadab634ba503a9e8cec95d3681557c9f9 SHA512 ee10c3fd6897ab1a8c4e006994b15a53d3d3ba7fc40975b67fc0a4104daa4473e4edabe9b7cdf1b82f87b14500d6db29485a1ee197aa7381551f030a7ba23a22 WHIRLPOOL a1d3f0b9be9a2982d0a3541b18f0d858298bc3413583df55b6ee407282c579699a6cd1f786efd4174feee9f0f77966a7d7cbe98952f050acde9c6852606aa508 +AUX opencv-3.1.0-remove-graphcut-for-cuda-8.patch 1032 SHA256 351679f918bd1a500b6d5af1df5ce7beeedcf5775f676a561883f934b1f4debc SHA512 ab30a26bf31767efd81933a6c0aa24517a467e8cb78184c161f0515ae04ded9dcaabb7eb4eb5b3cc61d510e5712d1b39e065074eae3fba984f43ba329fe46a20 WHIRLPOOL a41f95b26ffede49bfb7e44d26b20ee1807681cf50bb274da74f4e755d12b826f01e0cbbf4ade0d3281a1dee9186ef76c82db668713243d9491a8a2300476081 +AUX opencv-3.2.0-contrib_xfeatures2d-autodownload.patch 626 SHA256 9bacf48e7abd2f31a8050ff449e9502a861e1338c48fd11924721833c0bee0ec SHA512 74d21eb562a6b1bf28d20bad4221b3d158ed76925a255498f548726b83fa0c9d4e234ba7df8c58deaf662744a5e9da82d2635ea60048ef90f63a97e76fc10a02 WHIRLPOOL 5ecc165feae658e3164470b8ed20fd28bb8210f5034976fc9918033d8c558043421fe60dedb649c8b9af9990fa0dee9631f166e62faa8eda9455133d2ca1a456 +AUX opencv-3.2.0-cpu-mno-sse2.patch 383 SHA256 6ba12244c284d2fc7c2b75ef2dbe4b85c29b8f3b85ef32e36ef6bc6425e36f1f SHA512 139a4e0bad15b3e0a8856716d4621d5e7d49a0ba1338d16bd32e27eb881849a43ed22fdcc6d1502a295e023abc325835677e8683aac35f6d561c4a04ce46e978 WHIRLPOOL 3a9130bb76dbd57003abcb7c2628d92d5ae518972c89376d386aa572cfec58f4ce45e887b71eafb06c2214136320b6c6e05b187ecdb52a90a7b6c4c12b373b6e +AUX opencv-3.2.0-fix_ussage_cpu_instructions.patch 1931 SHA256 5bd6f120a3fe381119cbcbebb049770d0e3e54900101c9dbc2c5644238d09df9 SHA512 6d041966540c9fadb98d13cf3c3302bd800268fd03ebdf38e5da79fde604f3839244c78e7989e8e354ff7e265636f27ebcaabed4f9e0d57f46e3ced988182f01 WHIRLPOOL e3ee06e9c1e69876a5d5c5a3066bf812b892a6c770f11876f535c97f16826ec3da7b23ca8296524d6ad26c3fabefc6c13855f52c18aec7fc96d41cec21c8cbe0 +AUX opencv-3.2.0-gcc-6.0.patch 407 SHA256 7b4292be5355df88098a484e0a4f54239f066c69ff3f3efe23a9e9bbc4a4bef1 SHA512 2615d79b237df196425628838bbfeead2a9410e3c05d83f134e2f5a1ed6d1225236ad7e2e5797e96d4a0d28743e2ac5a441e385461c3b872c726a6a37bedb4b1 WHIRLPOOL be57115069926b31f5d5cb64e3845f4e272746ab849727e0ac9c3885f78940de2b8ecd768541f79b3b4a70be45cb76c386678f3ec8c0ce91316cbc9450f8f1ca +AUX opencv-3.2.0-vtk.patch 857 SHA256 5e8b0c80d1faf642edf43eb8e77aba8836c1b52fb8f55402370abfc5f675513d SHA512 c4c1f232b1814e7bcd93980a886b9c40b84c3ed41864e102f3a13c2272ab45bda8e488f21f5b1e25137a70533c0c24c83a3cb6355285bab5234ee083ff412d5b WHIRLPOOL 82cd9277750470d388e491466e9f9c554fecbbd61add1f543db4a570d7da5367b2a7395d9907cf184b89cad8bc91df8b604fb4e97386fa452b9c23ca3b3bf677 +AUX opencv-3.3.0-contrib-xfeatures2d.patch 1038 SHA256 66ca10b69e94f0cf43505b200f9dc4ef00782c2d5029f964532d6887f7c2331b SHA512 fbcd3fd68203d9bf865528c97aa69d69e41645d3549e6202d369047840d024aec1cf229f0dfb10e71d78b9433014611bf53673d6f36d60c02a643454955a9e8c WHIRLPOOL 870af62a9c0f55b3a8dfd38845f238ee6bde238998d0866c9aa01616f135dae766b8d24b28bc5601dfb19eb08099d7bf744e6eb764f2c66ac12c3ddbe14ecd6f +DIST imgcodecs-opencv-3.3.0.tar.gz 7724 SHA256 5d1ef31142ed42e06b2bb71134da7e5fae5e94e70896aae26ac2dc0baa74a161 SHA512 9c6fc31830e299e3d15da1cfc3468fe23eecda970a02e5826e0a7cfba34200c557c0e46f940154a26e9916da05859a83376217cbe7452ec8d14e99bc76f63d37 WHIRLPOOL fbf18817a3f6e82d2ce1ecad237b223244328208fe9926033133c2126e785a1ad3fbf06b69113a94996d624e73003564ea9ce2314ffbdecfb0ea3fd67308084d +DIST opencv-2.4.13.tar.gz 91669572 SHA256 94ebcca61c30034d5fb16feab8ec12c8a868f5162d20a9f0396f0f5f6d8bbbff SHA512 efdc4340fdf557dae44ac604c8c20f61ced89f99274264b61c2640f28741504462c6b57076e207040ca2513e3921275bdfbe6c22fc123bd50df78745e6b7bcd6 WHIRLPOOL 9fdbf2e47edeb8c177cb03ed5dc129475dd704c022975bc875d444a6e6c3df630f1151e738cf07fbe48343d0eb87723091131063fe776c63a386c46c0153f1d5 +DIST opencv-2.4.13.zip 94319943 SHA256 fa6a45f635f4e1dbc982b8ccc93206650e7fc584b2f3dd945759ce28b047b94f SHA512 b5ccaa22deabfedd29b697296d265a32c7db959f2e94ca3643c1cde65fb84463809535f2e6bd49c4baa06958fa223a32bbfdd7234b8e160ec333fd9cd7800d3b WHIRLPOOL 86f7690b460dbcf70dec30c29784d96b2bb99e43ba70fe967d18b375fcee4f8934591f0d9fe2ff6717346eb9be8628766658d589eae9943d528352d1ce1df455 +DIST opencv-3.1.0.tar.gz 76135587 SHA256 f00b3c4f42acda07d89031a2ebb5ebe390764a133502c03a511f67b78bbd4fbf SHA512 57e0fe41e3d5d1dc036e7fc5673523e53d54f5f62e4d3bcb95238a9cd53e79da7c1704dc136ce632f7cfce369ebf5eb27f629a9b6ac4f7fa34120b80b5c7438f WHIRLPOOL b2825d5cafa87e0fe9cacd093ddb969913d916c0370819073b2bde3c598798efcf23c406aae2116f2628c564ca99e5f871a448a3ece97d8d29ec73841ac283b4 +DIST opencv-3.1.0_contrib-75b3ea9.tar.gz 54277105 SHA256 478f742457d3f4e96f857b726e35b28a8d20a1de8e5f51b8671251bc896d443b SHA512 d1d11520b8729fbaf0257c927654251ff9ac1ba5cf937af9dd973ec39f483d1ee08aff7ad3f1a9941fef921a35dc466ac5574918197ddecd3f6c66b682bf671a WHIRLPOOL 18b70014428c4fa532658ca5ac332bffaae049b468f46cb027a6972f21f5b2bd17d02b33d68c43b84f821a77fa09efb9c372499cfa4f645a0516b93acb858353 +DIST opencv-3.2.0.tar.gz 78861546 SHA256 b9d62dfffb8130d59d587627703d5f3e6252dce4a94c1955784998da7a39dd35 SHA512 a338f4b4cdebfc2dcd763427b9c9632b3a3b0d072117b8e6367c73ea1ac21f7148553a23c7afbb44b01a48be3be95520789c2de1d6ae230b7b414ee713d3606d WHIRLPOOL 092c0c1195d80f89e0e2fd030a93eb80e7b83ce155fdcd9fa071248be20127a684922c83de73be9bf321d934e14b0b4e60cc78ab272ab9d39d6707da37db30d3 +DIST opencv-3.2.0_contrib.tar.gz 54765210 SHA256 1e2bb6c9a41c602904cc7df3f8fb8f98363a88ea564f2a087240483426bf8cbe SHA512 eadb6a8a3625235b0c71e29c36d15d9342278aaf9148ef6a7e1aa80f4db0491aaf30b6df16bfd0cd358402b2a3059b6acbce23fb5fe2c0c57150a733ffbbff5a WHIRLPOOL eb8f916c19474a58f4c2785e50dc261a31f684a917011473b94a19d26e4e9845c042f77196c000dd97543699b745360114cdd31cad549379b6394e9d727c72a8 +DIST opencv-3.3.0.tar.gz 81238534 SHA256 8bb312b9d9fd17336dc1f8b3ac82f021ca50e2034afc866098866176d985adc6 SHA512 13dee5c1c5fec1dccdbb05879d299b93ef8ddeb87f561a6c4178e33a4cf5ae919765119068d0387a3efea0e09a625ca993cffac60a772159690fcbee4e8d70fb WHIRLPOOL 211496e559fa3a78b662329a5e21613fdc39b616155584311f82f3d7c733676bcb58d8e04ffda2d73658933240e16122212413fa1c2e6dfe764439c9460d7c41 +DIST opencv-3.3.0_contrib.tar.gz 54848519 SHA256 e94acf39cd4854c3ef905e06516e5f74f26dddfa6477af89558fb40a57aeb444 SHA512 ebe3dbe6c754c6fbaabbf6b0d2a4209964e625fd68e593f30ce043792740c8c1d4440d7870949b5b33f488fd7e2e05f3752287b7f50dd24c29202e268776520e WHIRLPOOL b186f673e276c4b8c4c5253fd17181f0e1b7bd4a0e0c74f15ab55ea5f2ee54a72fc295247c7bfcbfbedba1fc01b4c5e2a53a2a4eff79ab0480977a6eefc90c58 +DIST vgg_boostdesc-3.2.0.tar.gz 1867770 SHA256 6da9c2465e2b36330fa5d5c45320a0667da5cb4eafd66a5b1f45feb2af047a27 SHA512 4a046aedd639c8eb4b295b0f499e756deb66210ca083f0124c75531e540663367cb58f6d175f66c4713324177036cd89a8869bdab2de8d1736dafc7f00ef9f44 WHIRLPOOL 5c78e43c95d40d103ac741248deb130bcb49a5b7e2cd012135572630b525b6f15a7f89948170c76545d97eb3815a000a2a1236ad24de2205eeb8938ee8eb0c12 +EBUILD opencv-2.4.13-r2.ebuild 6204 SHA256 20ccb0b14b499e770e5ffe6d8be6b3e6685a7521cdc821b4a5129ff3016c4ba2 SHA512 471de04a9e6150d21f729872e4ed83916d210fac5f836862d66bfb529aee2c203fb4f8e4ebe8f527d56277236ef63c501e5b6ad933efcd0b2f8f5d1320470b50 WHIRLPOOL b86c57dbe61f9b8b6c6f9b35ffbcf20fb39fd31b5f5fdcb9775573804cf5c7e86c8419fb0deda3f0787e0502214822a676da3542bf92deba7b7101356873e49f +EBUILD opencv-2.4.13.ebuild 6145 SHA256 a7a3959b0ddba5a076af4b93b2723dd42d61c1ff92b4b54267b290fef69bd728 SHA512 a482d441836a9f64576f07d3ca9229f22665b05259915338c432c0e9bfe5071fbff481ef8b9680a256146605f7d79a1485b711709bbc46941d8ee02a1029a7e4 WHIRLPOOL 65ebedbbffaa6d1ae5f2809cb2ca867c04c1b14dd60e54c866e9078896828a3218dd56a7a322369b959bab882e3a9346d244e152625126093386580965f7cd61 +EBUILD opencv-3.1.0-r8.ebuild 10665 SHA256 7d54a29427d3a1cfcca5e5df6133e89e7463343f98c917997a0eba257f654f29 SHA512 0114f2ffb2851498103fa0ed6c646ccf53f8a3d8060a58548d1b41905f1c25cff7928ad97ea58d66d0485bcf546b4600af4eafa924242fce225c79ad13e3607d WHIRLPOOL 8dc91ef04c093c5e2b03cc451b64faf6e5416dd6c7f24417ab17f843be660ff5011600a2cbd808d6cc7106d81f009d6f738566ea8a3192a9fa848cb17e82b704 +EBUILD opencv-3.2.0-r2.ebuild 10386 SHA256 4718e6efd095f317f6043c32a2f4ee50b9d1eb18a5f70d91ed5b444701f9a6b5 SHA512 1dac5965213e741aa3f4b8c65880837d13e5415ce9e1bfa10788ea50097d075bca3cabac2c46fe4df0d3bd8ae1bddccc24e52a0841b9b2fe27d17b4e630b7791 WHIRLPOOL 1e3fa8c345deb5e1a059eef70b0c326a87bdb6f642ba63419fea30236e31ab137b8f2c00f7a7217916c6b87ba8b7067d3385b1279ba6c8cb04f4d4c596023d36 +EBUILD opencv-3.2.0-r3.ebuild 12170 SHA256 d9af1ecf567319a40d564424450d3716aadf755703291da5ed1ff56d6c74a6da SHA512 db47c1f4482a3d3bd710019f54dd6d87b54ed1a6ec4f74eb1a82f1111170f0565fb6b44dfe1cf87f9278257d49b8dbb7f90b8854645f86a3b890c6abba1aa373 WHIRLPOOL cde7a7222a3dcd7a22d7487077a7b611e90aed47b631e7673bd69b3b6d765cca547885482dfdc7fc50daa7e4c4865c47560d750d81dbe5e06a66eb87ab73cf0f +EBUILD opencv-3.3.0-r2.ebuild 12168 SHA256 823c648cf75d26093dad8922e609984a8031817bad5ea6208b003f5462d55a51 SHA512 a2c244ea381f32595df1b2de8861b2c14fb56a5c2e0f143cfc9d3cb147b97e1b3ce981628e6ba91d211744d8ab52b4161de16a9cd97e74d6207183a649a9fd1d WHIRLPOOL f62d5fcb183b6a4e4ad808844bb047ed5a092d2ccaa5d68f05c0e6fe59220d984d183ca730fcf537aab96e47179462f6d64798b70b3f5d5a143e7855ad8a1616 +MISC ChangeLog 15787 SHA256 89bc69a66244fcbf9f45993cb2fe4bb65aeb44242bd6512449b69d90ba25f9e0 SHA512 e9b49d71f074b5587b82d9c15faf036cc9b6a2e18ab2d2cb637deee01b9ff1196ec83c0906d137c32c1e6b724e5d4c57f3a1a76e3a2ac2d0bad2e0318cf83565 WHIRLPOOL 76836a2416c739b742cc22dcfbd5ce91b62425a73411a50e3788e49110fc968a81b9b265cb407ba905abc5d50db5accc8a0a051a4c529389f27688a0804eaad8 +MISC ChangeLog-2015 21275 SHA256 9d5de7197f2648bc03bc85cfa0837f1b9623623056b2ffdc2cab937024c5f8fe SHA512 3a919a75db6a02639f7f515f6bc136c78b30fe95ac2a54c3a11f24341ca56bc5e0072f696c9d08c2378c6719f13fc13d6724299f03a3c398c748573867678c7a WHIRLPOOL b6c575b9fe69e46cdbfee6f834fb6ac5e0bc66d0c537f096a95b8e46d2b340e57cc82f3dc08fda0da9eab34d372fa8aab60c4af90a1971509f740e31a3403758 +MISC metadata.xml 2478 SHA256 76bc7aef9c2316d7256484aabffe992599335e52edf1626d5afa42560769f999 SHA512 865176271b361efedc54ca6f64c6b1810430cad04bef2d6351304c88c4212549700724b1475356d73a84d324be675ba0bb4c06e3b67639385b39e61e1922e92f WHIRLPOOL 7a4899570a058a389ee79b50fc088fe662720c972d4504f38246a5ac00f402693fd7b4df0d15f3dedbbeacaac33d45c2d705ebb1ceac709940da67fba8c9917c diff --git a/media-libs/opencv/files/opencv-2.3.1a-libav-0.7.patch b/media-libs/opencv/files/opencv-2.3.1a-libav-0.7.patch new file mode 100644 index 000000000000..59090703d149 --- /dev/null +++ b/media-libs/opencv/files/opencv-2.3.1a-libav-0.7.patch @@ -0,0 +1,10 @@ +--- OpenCV-2.3.1.orig/modules/highgui/src/cap_ffmpeg_impl.hpp 2011-11-14 05:33:37.000000000 +0100 ++++ OpenCV-2.3.1/modules/highgui/src/cap_ffmpeg_impl.hpp 2011-11-14 05:33:18.000000000 +0100 +@@ -104,6 +104,7 @@ + #endif + #if defined(HAVE_LIBAVCODEC_AVCODEC_H) + #include <libavcodec/avcodec.h> ++ #include <libavutil/mathematics.h> + #endif + #if defined(HAVE_LIBSWSCALE_SWSCALE_H) + #include <libswscale/swscale.h> diff --git a/media-libs/opencv/files/opencv-2.4.13-gcc-6.0.patch b/media-libs/opencv/files/opencv-2.4.13-gcc-6.0.patch new file mode 100644 index 000000000000..b0a5084752ca --- /dev/null +++ b/media-libs/opencv/files/opencv-2.4.13-gcc-6.0.patch @@ -0,0 +1,23 @@ +From fb598bb76a0431aa3a880ecfa45054c996a070fb Mon Sep 17 00:00:00 2001 +From: Maksim Shabunin <maksim.shabunin@itseez.com> +Date: Fri, 13 May 2016 13:28:09 +0300 +Subject: [PATCH] Disabled PCH support for gcc >= 6.0.0 + +Command line generation routine uses "-isystem" to include headers outside of "<opencv>/modules" folder, but GCC 6 does not work when passed "-isystem /usr/include" option. +--- + cmake/OpenCVPCHSupport.cmake | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake +index 13619daf27e..e6585cae020 100644 +--- a/cmake/OpenCVPCHSupport.cmake ++++ b/cmake/OpenCVPCHSupport.cmake +@@ -19,7 +19,7 @@ IF(CMAKE_COMPILER_IS_GNUCXX) + ARGS ${CMAKE_CXX_COMPILER_ARG1} -dumpversion + OUTPUT_VARIABLE gcc_compiler_version) + #MESSAGE("GCC Version: ${gcc_compiler_version}") +- IF(gcc_compiler_version VERSION_GREATER "4.2.-1") ++ IF(gcc_compiler_version VERSION_GREATER "4.2.-1" AND gcc_compiler_version VERSION_LESS "6.0.0") + SET(PCHSupport_FOUND TRUE) + ENDIF() + diff --git a/media-libs/opencv/files/opencv-2.4.13-imgcodecs-refactoring.patch b/media-libs/opencv/files/opencv-2.4.13-imgcodecs-refactoring.patch new file mode 100644 index 000000000000..d1bea36580fe --- /dev/null +++ b/media-libs/opencv/files/opencv-2.4.13-imgcodecs-refactoring.patch @@ -0,0 +1,580 @@ +From 72d29259ca741950527c8cca7fb649030c01f658 Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin <alexander.a.alekhin@gmail.com> +Date: Tue, 15 Aug 2017 22:04:55 +0000 +Subject: [PATCH] imgcodecs: refactoring, improve code quality + +--- + modules/core/include/opencv2/core/core.hpp | 3 + + modules/core/include/opencv2/core/operations.hpp | 3 + + modules/highgui/src/bitstrm.cpp | 2 + + modules/highgui/src/bitstrm.hpp | 19 ++-- + modules/highgui/src/grfmt_bmp.cpp | 13 ++- + modules/highgui/src/grfmt_pxm.cpp | 119 +++++++++++++--------- + modules/highgui/src/loadsave.cpp | 120 +++++++++++++++++++---- + 7 files changed, 207 insertions(+), 72 deletions(-) + +diff --git a/modules/core/include/opencv2/core/core.hpp b/modules/core/include/opencv2/core/core.hpp +index 6bb295f5c73..86f4eb182b2 100644 +--- a/modules/core/include/opencv2/core/core.hpp ++++ b/modules/core/include/opencv2/core/core.hpp +@@ -3248,6 +3248,9 @@ template<typename _Tp, size_t fixed_size=4096/sizeof(_Tp)+8> class AutoBuffer + //! returns read-only pointer to the real buffer, stack-allocated or head-allocated + operator const _Tp* () const; + ++ //! returns number of allocated elements ++ size_t getSize() const; ++ + protected: + //! pointer to the real buffer, can point to buf if the buffer is small enough + _Tp* ptr; +diff --git a/modules/core/include/opencv2/core/operations.hpp b/modules/core/include/opencv2/core/operations.hpp +index 1b7484aded2..37fd3d97c7a 100644 +--- a/modules/core/include/opencv2/core/operations.hpp ++++ b/modules/core/include/opencv2/core/operations.hpp +@@ -2581,6 +2581,9 @@ template<typename _Tp, size_t fixed_size> inline AutoBuffer<_Tp, fixed_size>::op + template<typename _Tp, size_t fixed_size> inline AutoBuffer<_Tp, fixed_size>::operator const _Tp* () const + { return ptr; } + ++template<typename _Tp, size_t fixed_size> inline size_t AutoBuffer<_Tp, fixed_size>::getSize() const ++{ return size; } ++ + + /////////////////////////////////// Ptr //////////////////////////////////////// + +diff --git a/modules/highgui/src/bitstrm.cpp b/modules/highgui/src/bitstrm.cpp +index dd8bec87cca..67792a27f28 100644 +--- a/modules/highgui/src/bitstrm.cpp ++++ b/modules/highgui/src/bitstrm.cpp +@@ -208,6 +208,8 @@ int RLByteStream::getByte() + current = m_current; + } + ++ CV_Assert(current < m_end); ++ + val = *((uchar*)current); + m_current = current + 1; + return val; +diff --git a/modules/highgui/src/bitstrm.hpp b/modules/highgui/src/bitstrm.hpp +index 57956beb539..b22987bc911 100644 +--- a/modules/highgui/src/bitstrm.hpp ++++ b/modules/highgui/src/bitstrm.hpp +@@ -48,13 +48,20 @@ + namespace cv + { + +-enum +-{ +- RBS_THROW_EOS=-123, // <end of stream> exception code +- RBS_THROW_FORB=-124, // <forrbidden huffman code> exception code +- RBS_HUFF_FORB=2047, // forrbidden huffman code "value" +- RBS_BAD_HEADER=-125 // invalid header ++#define DECLARE_RBS_EXCEPTION(name) \ ++class RBS_ ## name ## _Exception : public cv::Exception \ ++{ \ ++public: \ ++ RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \ ++ cv::Exception(code_, err_, func_, file_, line_) \ ++ {} \ + }; ++DECLARE_RBS_EXCEPTION(THROW_EOS) ++#define RBS_THROW_EOS RBS_THROW_EOS_Exception(CV_StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__) ++DECLARE_RBS_EXCEPTION(THROW_FORB) ++#define RBS_THROW_FORB RBS_THROW_FORB_Exception(CV_StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__) ++DECLARE_RBS_EXCEPTION(BAD_HEADER) ++#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(CV_StsError, "Invalid header", CV_Func, __FILE__, __LINE__) + + typedef unsigned long ulong; + +diff --git a/modules/highgui/src/grfmt_bmp.cpp b/modules/highgui/src/grfmt_bmp.cpp +index c8f8218cd3b..026b317467d 100644 +--- a/modules/highgui/src/grfmt_bmp.cpp ++++ b/modules/highgui/src/grfmt_bmp.cpp +@@ -115,8 +115,9 @@ bool BmpDecoder::readHeader() + + if( m_bpp <= 8 ) + { +- memset( m_palette, 0, sizeof(m_palette)); +- m_strm.getBytes( m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 ); ++ CV_Assert(clrused < 256); ++ memset(m_palette, 0, sizeof(m_palette)); ++ m_strm.getBytes(m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 ); + iscolor = IsColorPalette( m_palette, m_bpp ); + } + else if( m_bpp == 16 && m_rle_code == BMP_BITFIELDS ) +@@ -282,7 +283,9 @@ bool BmpDecoder::readData( Mat& img ) + else if( code > 2 ) // absolute mode + { + if( data + code*nch > line_end ) goto decode_rle4_bad; +- m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 ); ++ int sz = (((code + 1)>>1) + 1) & (~1); ++ CV_Assert((size_t)sz < _src.getSize()); ++ m_strm.getBytes(src, sz); + if( color ) + data = FillColorRow4( data, src, code, m_palette ); + else +@@ -371,7 +374,9 @@ decode_rle4_bad: ; + + if( data + code3 > line_end ) + goto decode_rle8_bad; +- m_strm.getBytes( src, (code + 1) & -2 ); ++ int sz = (code + 1) & (~1); ++ CV_Assert((size_t)sz < _src.getSize()); ++ m_strm.getBytes(src, sz); + if( color ) + data = FillColorRow8( data, src, code, m_palette ); + else +diff --git a/modules/highgui/src/grfmt_pxm.cpp b/modules/highgui/src/grfmt_pxm.cpp +index f73bbb1bf6b..e609d165966 100644 +--- a/modules/highgui/src/grfmt_pxm.cpp ++++ b/modules/highgui/src/grfmt_pxm.cpp +@@ -43,50 +43,58 @@ + #include "precomp.hpp" + #include "utils.hpp" + #include "grfmt_pxm.hpp" ++#include <iostream> + + namespace cv + { + + ///////////////////////// P?M reader ////////////////////////////// + +-static int ReadNumber( RLByteStream& strm, int maxdigits ) ++static int ReadNumber(RLByteStream& strm, int maxdigits = 0) + { + int code; +- int val = 0; ++ int64 val = 0; + int digits = 0; + + code = strm.getByte(); + +- if( !isdigit(code)) ++ while (!isdigit(code)) + { +- do ++ if (code == '#' ) + { +- if( code == '#' ) ++ do + { +- do +- { +- code = strm.getByte(); +- } +- while( code != '\n' && code != '\r' ); ++ code = strm.getByte(); + } +- ++ while (code != '\n' && code != '\r'); + code = strm.getByte(); +- +- while( isspace(code)) ++ } ++ else if (isspace(code)) ++ { ++ while (isspace(code)) + code = strm.getByte(); + } +- while( !isdigit( code )); ++ else ++ { ++#if 1 ++ CV_Error_(CV_StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code)); ++#else ++ code = strm.getByte(); ++#endif ++ } + } + + do + { +- val = val*10 + code - '0'; +- if( ++digits >= maxdigits ) break; ++ val = val*10 + (code - '0'); ++ CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large"); ++ digits++; ++ if (maxdigits != 0 && digits >= maxdigits) break; + code = strm.getByte(); + } +- while( isdigit(code)); ++ while (isdigit(code)); + +- return val; ++ return (int)val; + } + + +@@ -119,13 +127,13 @@ ImageDecoder PxMDecoder::newDecoder() const + return new PxMDecoder; + } + +-void PxMDecoder::close() ++void PxMDecoder::close() + { + m_strm.close(); + } + + +-bool PxMDecoder::readHeader() ++bool PxMDecoder::readHeader() + { + bool result = false; + +@@ -155,10 +163,10 @@ bool PxMDecoder::readHeader() + m_binary = code >= '4'; + m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1; + +- m_width = ReadNumber( m_strm, INT_MAX ); +- m_height = ReadNumber( m_strm, INT_MAX ); ++ m_width = ReadNumber(m_strm); ++ m_height = ReadNumber(m_strm); + +- m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX ); ++ m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm); + if( m_maxval > 65535 ) + throw RBS_BAD_HEADER; + +@@ -172,8 +180,14 @@ bool PxMDecoder::readHeader() + result = true; + } + } +- catch(...) ++ catch (const cv::Exception&) + { ++ throw; ++ } ++ catch (...) ++ { ++ std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush; ++ throw; + } + + if( !result ) +@@ -193,27 +207,23 @@ bool PxMDecoder::readData( Mat& img ) + int step = (int)img.step; + PaletteEntry palette[256]; + bool result = false; +- int bit_depth = CV_ELEM_SIZE1(m_type)*8; +- int src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8; ++ const int bit_depth = CV_ELEM_SIZE1(m_type)*8; ++ const int src_pitch = (m_width*m_bpp*(bit_depth/8) + 7) / 8; ++ + int nch = CV_MAT_CN(m_type); + int width3 = m_width*nch; +- int i, x, y; + + if( m_offset < 0 || !m_strm.isOpened()) + return false; + +- AutoBuffer<uchar,1024> _src(src_pitch + 32); +- uchar* src = _src; +- AutoBuffer<uchar,1024> _gray_palette; +- uchar* gray_palette = _gray_palette; ++ uchar gray_palette[256] = {0}; + + // create LUT for converting colors + if( bit_depth == 8 ) + { +- _gray_palette.allocate(m_maxval + 1); +- gray_palette = _gray_palette; ++ CV_Assert(m_maxval < 256); + +- for( i = 0; i <= m_maxval; i++ ) ++ for (int i = 0; i <= m_maxval; i++) + gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0)); + + FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 ); +@@ -227,12 +237,16 @@ bool PxMDecoder::readData( Mat& img ) + { + ////////////////////////// 1 BPP ///////////////////////// + case 1: ++ CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U); + if( !m_binary ) + { +- for( y = 0; y < m_height; y++, data += step ) ++ AutoBuffer<uchar> _src(m_width); ++ uchar* src = _src; ++ ++ for (int y = 0; y < m_height; y++, data += step) + { +- for( x = 0; x < m_width; x++ ) +- src[x] = ReadNumber( m_strm, 1 ) != 0; ++ for (int x = 0; x < m_width; x++) ++ src[x] = ReadNumber(m_strm, 1) != 0; + + if( color ) + FillColorRow8( data, src, m_width, palette ); +@@ -242,7 +256,10 @@ bool PxMDecoder::readData( Mat& img ) + } + else + { +- for( y = 0; y < m_height; y++, data += step ) ++ AutoBuffer<uchar> _src(src_pitch); ++ uchar* src = _src; ++ ++ for (int y = 0; y < m_height; y++, data += step) + { + m_strm.getBytes( src, src_pitch ); + +@@ -258,11 +275,15 @@ bool PxMDecoder::readData( Mat& img ) + ////////////////////////// 8 BPP ///////////////////////// + case 8: + case 24: +- for( y = 0; y < m_height; y++, data += step ) ++ { ++ AutoBuffer<uchar> _src(std::max<size_t>(width3*2, src_pitch)); ++ uchar* src = _src; ++ ++ for (int y = 0; y < m_height; y++, data += step) + { + if( !m_binary ) + { +- for( x = 0; x < width3; x++ ) ++ for (int x = 0; x < width3; x++) + { + int code = ReadNumber( m_strm, INT_MAX ); + if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval; +@@ -277,7 +298,7 @@ bool PxMDecoder::readData( Mat& img ) + m_strm.getBytes( src, src_pitch ); + if( bit_depth == 16 && !isBigEndian() ) + { +- for( x = 0; x < width3; x++ ) ++ for (int x = 0; x < width3; x++) + { + uchar v = src[x * 2]; + src[x * 2] = src[x * 2 + 1]; +@@ -288,7 +309,7 @@ bool PxMDecoder::readData( Mat& img ) + + if( img.depth() == CV_8U && bit_depth == 16 ) + { +- for( x = 0; x < width3; x++ ) ++ for (int x = 0; x < width3; x++) + { + int v = ((ushort *)src)[x]; + src[x] = (uchar)(v >> 8); +@@ -329,12 +350,19 @@ bool PxMDecoder::readData( Mat& img ) + } + result = true; + break; ++ } + default: +- assert(0); ++ CV_Error(CV_StsError, "m_bpp is not supported"); + } + } +- catch(...) ++ catch (const cv::Exception&) ++ { ++ throw; ++ } ++ catch (...) + { ++ std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush; ++ throw; + } + + return result; +@@ -410,8 +438,9 @@ bool PxMEncoder::write( const Mat& img, const vector<int>& params ) + char* buffer = _buffer; + + // write header; +- sprintf( buffer, "P%c\n%d %d\n%d\n", ++ sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n", + '2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0), ++ CV_VERSION, + width, height, (1 << depth) - 1 ); + + strm.putBytes( buffer, (int)strlen(buffer) ); +diff --git a/modules/highgui/src/loadsave.cpp b/modules/highgui/src/loadsave.cpp +index 81c708acdd4..9b270c900f7 100644 +--- a/modules/highgui/src/loadsave.cpp ++++ b/modules/highgui/src/loadsave.cpp +@@ -48,12 +48,32 @@ + #undef min + #undef max + ++#include <iostream> ++ + /****************************************************************************************\ + * Image Codecs * + \****************************************************************************************/ + namespace cv + { + ++// TODO Add runtime configuration ++#define CV_IO_MAX_IMAGE_PARAMS (50) ++#define CV_IO_MAX_IMAGE_WIDTH (1<<20) ++#define CV_IO_MAX_IMAGE_HEIGHT (1<<20) ++#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel ++ ++static Size validateInputImageSize(const Size& size) ++{ ++ CV_Assert(size.width > 0); ++ CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH); ++ CV_Assert(size.height > 0); ++ CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT); ++ uint64 pixels = (uint64)size.width * (uint64)size.height; ++ CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS); ++ return size; ++} ++ ++ + struct ImageCodecInitializer + { + ImageCodecInitializer() +@@ -203,12 +223,26 @@ imread_( const string& filename, int flags, int hdrtype, Mat* mat=0 ) + if( decoder.empty() ) + return 0; + decoder->setSource(filename); +- if( !decoder->readHeader() ) ++ ++ try ++ { ++ // read the header to make sure it succeeds ++ if (!decoder->readHeader()) ++ return 0; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush; + return 0; ++ } ++ catch (...) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush; ++ return 0; ++ } + +- CvSize size; +- size.width = decoder->width(); +- size.height = decoder->height(); ++ ++ Size size = validateInputImageSize(Size(decoder->width(), decoder->height())); + + int type = decoder->type(); + if( flags != -1 ) +@@ -242,7 +276,21 @@ imread_( const string& filename, int flags, int hdrtype, Mat* mat=0 ) + temp = cvarrToMat(image); + } + +- if( !decoder->readData( *data )) ++ bool success = false; ++ try ++ { ++ if (decoder->readData(*data)) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush; ++ } ++ if (!success) + { + cvReleaseImage( &image ); + cvReleaseMat( &matrix ); +@@ -288,6 +336,7 @@ static bool imwrite_( const string& filename, const Mat& image, + } + + encoder->setDestination( filename ); ++ CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2); + bool code = encoder->write( *pimage, params ); + + // CV_Assert( code ); +@@ -326,16 +375,34 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 ) + decoder->setSource(filename); + } + +- if( !decoder->readHeader() ) ++ bool success = false; ++ try + { +- if( !filename.empty() ) +- remove(filename.c_str()); ++ if (decoder->readHeader()) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush; ++ } ++ if (!success) ++ { ++ if (!filename.empty()) ++ { ++ if (0 != remove(filename.c_str())) ++ { ++ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush; ++ } ++ } + return 0; + } + +- CvSize size; +- size.width = decoder->width(); +- size.height = decoder->height(); ++ // established the required input image size ++ Size size = validateInputImageSize(Size(decoder->width(), decoder->height())); + + int type = decoder->type(); + if( flags != -1 ) +@@ -369,11 +436,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 ) + temp = cvarrToMat(image); + } + +- bool code = decoder->readData( *data ); +- if( !filename.empty() ) +- remove(filename.c_str()); ++ success = false; ++ try ++ { ++ if (decoder->readData(*data)) ++ success = true; ++ } ++ catch (const cv::Exception& e) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush; ++ } ++ catch (...) ++ { ++ std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush; ++ } + +- if( !code ) ++ if (!filename.empty()) ++ { ++ if (0 != remove(filename.c_str())) ++ { ++ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush; ++ } ++ } ++ ++ if (!success) + { + cvReleaseImage( &image ); + cvReleaseMat( &matrix ); +@@ -490,7 +576,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params ) + if( _params ) + { + for( ; _params[i] > 0; i += 2 ) +- ; ++ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons + } + return cv::imwrite_(filename, cv::cvarrToMat(arr), + i > 0 ? cv::vector<int>(_params, _params+i) : cv::vector<int>(), +@@ -521,7 +607,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params ) + if( _params ) + { + for( ; _params[i] > 0; i += 2 ) +- ; ++ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons + } + cv::Mat img = cv::cvarrToMat(arr); + if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL ) diff --git a/media-libs/opencv/files/opencv-2.4.2-cflags.patch b/media-libs/opencv/files/opencv-2.4.2-cflags.patch new file mode 100644 index 000000000000..d52e6b6a39f4 --- /dev/null +++ b/media-libs/opencv/files/opencv-2.4.2-cflags.patch @@ -0,0 +1,21 @@ +diff -ruN OpenCV-2.4.2.orig/cmake/OpenCVCompilerOptions.cmake OpenCV-2.4.2/cmake/OpenCVCompilerOptions.cmake +--- OpenCV-2.4.2.orig/cmake/OpenCVCompilerOptions.cmake 2012-06-29 00:55:15.000000000 +0200 ++++ OpenCV-2.4.2/cmake/OpenCVCompilerOptions.cmake 2012-07-16 23:51:24.244907235 +0200 +@@ -110,17 +110,6 @@ + endif() + + # Other optimizations +- if(ENABLE_OMIT_FRAME_POINTER) +- add_extra_compiler_option(-fomit-frame-pointer) +- else() +- add_extra_compiler_option(-fno-omit-frame-pointer) +- endif() +- if(ENABLE_FAST_MATH) +- add_extra_compiler_option(-ffast-math) +- endif() +- if(ENABLE_POWERPC) +- add_extra_compiler_option("-mcpu=G3 -mtune=G5") +- endif() + if(ENABLE_SSE) + add_extra_compiler_option(-msse) + endif() diff --git a/media-libs/opencv/files/opencv-2.4.3-gcc47.patch b/media-libs/opencv/files/opencv-2.4.3-gcc47.patch new file mode 100644 index 000000000000..13ac8f8fb58f --- /dev/null +++ b/media-libs/opencv/files/opencv-2.4.3-gcc47.patch @@ -0,0 +1,22 @@ +diff -ruN OpenCV-2.4.3.orig/modules/highgui/src/grfmt_tiff.cpp OpenCV-2.4.3/modules/highgui/src/grfmt_tiff.cpp +--- OpenCV-2.4.3.orig/modules/highgui/src/grfmt_tiff.cpp 2012-10-12 00:55:12.000000000 +0200 ++++ OpenCV-2.4.3/modules/highgui/src/grfmt_tiff.cpp 2012-11-05 21:37:40.000000000 +0100 +@@ -47,6 +47,7 @@ + + #include "precomp.hpp" + #include "grfmt_tiff.hpp" ++#include "unistd.h" + + namespace cv + { +diff -ruN OpenCV-2.4.3.orig/modules/highgui/src/window_QT.h OpenCV-2.4.3/modules/highgui/src/window_QT.h +--- OpenCV-2.4.3.orig/modules/highgui/src/window_QT.h 2012-10-18 00:55:38.000000000 +0200 ++++ OpenCV-2.4.3/modules/highgui/src/window_QT.h 2012-11-05 21:38:41.000000000 +0100 +@@ -41,6 +41,7 @@ + #define __OPENCV_HIGHGUI_QT_H__ + + #include "precomp.hpp" ++#include "unistd.h" + + #if defined( HAVE_QT_OPENGL ) + #include <QtOpenGL> diff --git a/media-libs/opencv/files/opencv-2.4.8-javamagic.patch b/media-libs/opencv/files/opencv-2.4.8-javamagic.patch new file mode 100644 index 000000000000..766abc1e0941 --- /dev/null +++ b/media-libs/opencv/files/opencv-2.4.8-javamagic.patch @@ -0,0 +1,32 @@ +diff -ruN opencv-2.4.8.orig/CMakeLists.txt opencv-2.4.8/CMakeLists.txt +--- opencv-2.4.8.orig/CMakeLists.txt 2013-12-27 18:09:18.000000000 +0100 ++++ opencv-2.4.8/CMakeLists.txt 2014-01-24 22:06:12.000000000 +0100 +@@ -164,6 +164,7 @@ + OCV_OPTION(WITH_OPENCLAMDFFT "Include AMD OpenCL FFT library support" ON IF (NOT ANDROID AND NOT IOS) ) + OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON IF (NOT ANDROID AND NOT IOS) ) + OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF WIN32 ) ++OCV_OPTION(WITH_JAVA "Include Java support" ON) + + # OpenCV build components + # =================================================== +@@ -449,6 +450,8 @@ + include(cmake/OpenCVDetectPython.cmake) + + # --- Java Support --- ++if(WITH_JAVA) ++ + include(cmake/OpenCVDetectApacheAnt.cmake) + if(ANDROID) + include(cmake/OpenCVDetectAndroidSDK.cmake) +@@ -466,6 +469,11 @@ + SET(CAN_BUILD_ANDROID_PROJECTS FALSE) + endif() + ++else() ++ SET(ANT_EXECUTABLE "") ++ SET(CAN_BUILD_ANDROID_PROJECTS FALSE) ++endif() ++ + # --- OpenCL --- + if(WITH_OPENCL) + include(cmake/OpenCVDetectOpenCL.cmake) diff --git a/media-libs/opencv/files/opencv-2.4.9-cuda-pkg-config.patch b/media-libs/opencv/files/opencv-2.4.9-cuda-pkg-config.patch new file mode 100644 index 000000000000..d7ff3c7eaf67 --- /dev/null +++ b/media-libs/opencv/files/opencv-2.4.9-cuda-pkg-config.patch @@ -0,0 +1,12 @@ +--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -528,6 +528,9 @@
+ if(HAVE_CUFFT)
+ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} ${CUDA_cufft_LIBRARY})
+ endif()
++ foreach(p ${CUDA_LIBS_PATH})
++ set(OPENCV_LINKER_LIBS ${OPENCV_LINKER_LIBS} -L${p})
++ endforeach()
+ endif()
+
+ # ----------------------------------------------------------------------------
diff --git a/media-libs/opencv/files/opencv-3.0.0-gles.patch b/media-libs/opencv/files/opencv-3.0.0-gles.patch new file mode 100644 index 000000000000..a2629d928e82 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.0.0-gles.patch @@ -0,0 +1,14 @@ +Index: opencv-2.4.11/modules/highgui/src/window_QT.cpp +=================================================================== +--- opencv-2.4.11.orig/modules/highgui/src/window_QT.cpp ++++ opencv-2.4.11/modules/highgui/src/window_QT.cpp +@@ -3118,7 +3118,9 @@ void OpenGlViewPort::updateGl() + + void OpenGlViewPort::initializeGL() + { ++#ifdef GL_PERSPECTIVE_CORRECTION_HINT + glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST); ++#endif + } + + void OpenGlViewPort::resizeGL(int w, int h) diff --git a/media-libs/opencv/files/opencv-3.1.0-cmake-no-opengl.patch b/media-libs/opencv/files/opencv-3.1.0-cmake-no-opengl.patch new file mode 100644 index 000000000000..d6d70d717d3b --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-cmake-no-opengl.patch @@ -0,0 +1,22 @@ +From cdb9c60dcb65e04e7c0bd6bef9b86841191c785a Mon Sep 17 00:00:00 2001 +From: Alexander Alekhin <alexander.alekhin@itseez.com> +Date: Thu, 31 Dec 2015 02:24:54 +0300 +Subject: [PATCH] gpu samples: fix REMOVE_ITEM error + +--- + samples/gpu/CMakeLists.txt | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/samples/gpu/CMakeLists.txt b/samples/gpu/CMakeLists.txt +index 6085cac..852a8c2 100644 +--- a/samples/gpu/CMakeLists.txt ++++ b/samples/gpu/CMakeLists.txt +@@ -97,7 +97,7 @@ endif() + if(INSTALL_C_EXAMPLES AND NOT WIN32) + file(GLOB install_list *.c *.cpp *.jpg *.png *.data makefile.* build_all.sh *.dsp *.cmd ) + if(NOT WITH_OPENGL) +- list(REMOVE_ITEM all_samples "opengl.cpp") ++ list(REMOVE_ITEM install_list "opengl.cpp") + endif(NOT WITH_OPENGL) + install(FILES ${install_list} + DESTINATION ${OPENCV_SAMPLES_SRC_INSTALL_PATH}/gpu diff --git a/media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch b/media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch new file mode 100644 index 000000000000..52f4db6b3113 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-find-libraries-fix.patch @@ -0,0 +1,48 @@ +diff -purN a/cmake/OpenCVFindLibsGrfmt.cmake b/cmake/OpenCVFindLibsGrfmt.cmake +--- a/cmake/OpenCVFindLibsGrfmt.cmake 2015-12-18 15:02:16.000000000 +0000 ++++ b/cmake/OpenCVFindLibsGrfmt.cmake 2016-11-07 13:18:04.567340791 +0000 +@@ -18,7 +18,7 @@ endif() + if(NOT ZLIB_FOUND) + ocv_clear_vars(ZLIB_LIBRARY ZLIB_LIBRARIES ZLIB_INCLUDE_DIRS) + +- set(ZLIB_LIBRARY zlib) ++ set(ZLIB_LIBRARY z) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/zlib") + set(ZLIB_INCLUDE_DIRS "${${ZLIB_LIBRARY}_SOURCE_DIR}" "${${ZLIB_LIBRARY}_BINARY_DIR}") + set(ZLIB_LIBRARIES ${ZLIB_LIBRARY}) +@@ -40,7 +40,7 @@ if(WITH_TIFF) + if(NOT TIFF_FOUND) + ocv_clear_vars(TIFF_LIBRARY TIFF_LIBRARIES TIFF_INCLUDE_DIR) + +- set(TIFF_LIBRARY libtiff) ++ set(TIFF_LIBRARY tiff) + set(TIFF_LIBRARIES ${TIFF_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libtiff") + set(TIFF_INCLUDE_DIR "${${TIFF_LIBRARY}_SOURCE_DIR}" "${${TIFF_LIBRARY}_BINARY_DIR}") +@@ -79,7 +79,7 @@ if(WITH_JPEG) + if(NOT JPEG_FOUND) + ocv_clear_vars(JPEG_LIBRARY JPEG_LIBRARIES JPEG_INCLUDE_DIR) + +- set(JPEG_LIBRARY libjpeg) ++ set(JPEG_LIBRARY jpeg) + set(JPEG_LIBRARIES ${JPEG_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjpeg") + set(JPEG_INCLUDE_DIR "${${JPEG_LIBRARY}_SOURCE_DIR}") +@@ -136,7 +136,7 @@ if(WITH_JASPER) + if(NOT JASPER_FOUND) + ocv_clear_vars(JASPER_LIBRARY JASPER_LIBRARIES JASPER_INCLUDE_DIR) + +- set(JASPER_LIBRARY libjasper) ++ set(JASPER_LIBRARY jasper) + set(JASPER_LIBRARIES ${JASPER_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libjasper") + set(JASPER_INCLUDE_DIR "${${JASPER_LIBRARY}_SOURCE_DIR}") +@@ -169,7 +169,7 @@ if(WITH_PNG) + if(NOT PNG_FOUND) + ocv_clear_vars(PNG_LIBRARY PNG_LIBRARIES PNG_INCLUDE_DIR PNG_PNG_INCLUDE_DIR HAVE_LIBPNG_PNG_H PNG_DEFINITIONS) + +- set(PNG_LIBRARY libpng) ++ set(PNG_LIBRARY png) + set(PNG_LIBRARIES ${PNG_LIBRARY}) + add_subdirectory("${OpenCV_SOURCE_DIR}/3rdparty/libpng") + set(PNG_INCLUDE_DIR "${${PNG_LIBRARY}_SOURCE_DIR}") diff --git a/media-libs/opencv/files/opencv-3.1.0-git-autodetect.patch b/media-libs/opencv/files/opencv-3.1.0-git-autodetect.patch new file mode 100644 index 000000000000..f4bf0da2cc92 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-git-autodetect.patch @@ -0,0 +1,42 @@ +--- a/CMakeLists.txt 2016-04-07 14:34:35.090937125 +0200 ++++ b/CMakeLists.txt 2016-04-07 14:35:18.492935300 +0200 +@@ -444,23 +444,23 @@ + # ---------------------------------------------------------------------------- + # Autodetect if we are in a GIT repository + # ---------------------------------------------------------------------------- +-find_host_package(Git QUIET) ++#find_host_package(Git QUIET) + +-if(GIT_FOUND) +- execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*" +- WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}" +- OUTPUT_VARIABLE OPENCV_VCSVERSION +- RESULT_VARIABLE GIT_RESULT +- ERROR_QUIET +- OUTPUT_STRIP_TRAILING_WHITESPACE +- ) +- if(NOT GIT_RESULT EQUAL 0) +- set(OPENCV_VCSVERSION "unknown") +- endif() +-else() +- # We don't have git: +- set(OPENCV_VCSVERSION "unknown") +-endif() ++#if(GIT_FOUND) ++# execute_process(COMMAND "${GIT_EXECUTABLE}" describe --tags --always --dirty --match "[0-9].[0-9].[0-9]*" ++# WORKING_DIRECTORY "${OpenCV_SOURCE_DIR}" ++# OUTPUT_VARIABLE OPENCV_VCSVERSION ++# RESULT_VARIABLE GIT_RESULT ++# ERROR_QUIET ++# OUTPUT_STRIP_TRAILING_WHITESPACE ++# ) ++# if(NOT GIT_RESULT EQUAL 0) ++# set(OPENCV_VCSVERSION "unknown") ++# endif() ++#else() ++# # We don't have git: ++# set(OPENCV_VCSVERSION "unknown") ++#endif() + + + # ---------------------------------------------------------------------------- diff --git a/media-libs/opencv/files/opencv-3.1.0-java-magic.patch b/media-libs/opencv/files/opencv-3.1.0-java-magic.patch new file mode 100644 index 000000000000..96a0e7e7053f --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-java-magic.patch @@ -0,0 +1,47 @@ +diff -purN a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt 2015-12-18 15:02:16.000000000 +0000 ++++ b/CMakeLists.txt 2016-06-06 17:15:48.006020666 +0100 +@@ -209,6 +209,7 @@ OCV_OPTION(WITH_OPENCLAMDFFT "Include + OCV_OPTION(WITH_OPENCLAMDBLAS "Include AMD OpenCL BLAS library support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT) ) + OCV_OPTION(WITH_DIRECTX "Include DirectX support" ON IF (WIN32 AND NOT WINRT) ) + OCV_OPTION(WITH_INTELPERC "Include Intel Perceptual Computing support" OFF IF (WIN32 AND NOT WINRT) ) ++OCV_OPTION(WITH_JAVA "Include Java support" ON) + OCV_OPTION(WITH_IPP_A "Include Intel IPP_A support" OFF IF (MSVC OR X86 OR X86_64) ) + OCV_OPTION(WITH_MATLAB "Include Matlab support" ON IF (NOT ANDROID AND NOT IOS AND NOT WINRT)) + OCV_OPTION(WITH_VA "Include VA support" OFF IF (UNIX AND NOT ANDROID) ) +@@ -562,20 +563,25 @@ endif(BUILD_DOCS) + include(cmake/OpenCVDetectPython.cmake) + + # --- Java Support --- +-include(cmake/OpenCVDetectApacheAnt.cmake) +-if(ANDROID) +- include(cmake/OpenCVDetectAndroidSDK.cmake) ++If(WITH_JAVA) ++ include(cmake/OpenCVDetectApacheAnt.cmake) ++ if(ANDROID) ++ include(cmake/OpenCVDetectAndroidSDK.cmake) + +- if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13) +- message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.") ++ if(NOT ANDROID_TOOLS_Pkg_Revision GREATER 13) ++ message(WARNING "OpenCV requires Android SDK tools revision 14 or newer. Otherwise tests and samples will no be compiled.") ++ endif() ++ else() ++ find_package(JNI) + endif() +-else() +- find_package(JNI) +-endif() + +-if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13)) +- SET(CAN_BUILD_ANDROID_PROJECTS TRUE) ++ if(ANDROID AND ANDROID_EXECUTABLE AND ANT_EXECUTABLE AND (ANT_VERSION VERSION_GREATER 1.7) AND (ANDROID_TOOLS_Pkg_Revision GREATER 13)) ++ SET(CAN_BUILD_ANDROID_PROJECTS TRUE) ++ else() ++ SET(CAN_BUILD_ANDROID_PROJECTS FALSE) ++ endif() + else() ++ SET(ANT_EXECUTABLE "") + SET(CAN_BUILD_ANDROID_PROJECTS FALSE) + endif() + diff --git a/media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch b/media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch new file mode 100644 index 000000000000..64761a263a17 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.1.0-remove-graphcut-for-cuda-8.patch @@ -0,0 +1,23 @@ +From 10896129b39655e19e4e7c529153cb5c2191a1db Mon Sep 17 00:00:00 2001 +From: Vladislav Vinogradov <vlad.vinogradov@itseez.com> +Date: Fri, 6 May 2016 11:37:32 +0300 +Subject: [PATCH] GraphCut deprecated in CUDA 7.5 and removed in 8.0 + +--- + modules/cudalegacy/src/graphcuts.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/modules/cudalegacy/src/graphcuts.cpp b/modules/cudalegacy/src/graphcuts.cpp +index eb08c3c..1a1eb85 100644 +--- a/modules/cudalegacy/src/graphcuts.cpp ++++ b/modules/cudalegacy/src/graphcuts.cpp +@@ -42,7 +42,8 @@ + + #include "precomp.hpp" + +-#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) ++// GraphCut has been removed in NPP 8.0 ++#if !defined (HAVE_CUDA) || defined (CUDA_DISABLER) || (CUDART_VERSION >= 8000) + + void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); } + void cv::cuda::graphcut(GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, GpuMat&, Stream&) { throw_no_cuda(); } diff --git a/media-libs/opencv/files/opencv-3.2.0-contrib_xfeatures2d-autodownload.patch b/media-libs/opencv/files/opencv-3.2.0-contrib_xfeatures2d-autodownload.patch new file mode 100644 index 000000000000..f03c57d425cc --- /dev/null +++ b/media-libs/opencv/files/opencv-3.2.0-contrib_xfeatures2d-autodownload.patch @@ -0,0 +1,10 @@ +--- a/modules/xfeatures2d/CMakeLists.txt 2017-02-28 13:10:56.470000000 +0100 ++++ b/modules/xfeatures2d/CMakeLists.txt 2017-02-28 13:11:03.970000000 +0100 +@@ -1,5 +1,5 @@ + set(the_description "Contributed/Experimental Algorithms for Salient 2D Features Detection") + ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d opencv_shape opencv_highgui opencv_videoio opencv_ml + OPTIONAL opencv_cudaarithm WRAP python java) +-include(cmake/download_vgg.cmake) +-include(cmake/download_boostdesc.cmake) ++#include(cmake/download_vgg.cmake) ++#include(cmake/download_boostdesc.cmake) diff --git a/media-libs/opencv/files/opencv-3.2.0-cpu-mno-sse2.patch b/media-libs/opencv/files/opencv-3.2.0-cpu-mno-sse2.patch new file mode 100644 index 000000000000..a73456411f27 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.2.0-cpu-mno-sse2.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVCompilerOptions.cmake 2017-07-22 13:26:51.178960091 +0200 ++++ b/cmake/OpenCVCompilerOptions.cmake 2017-07-22 13:27:47.238961469 +0200 +@@ -176,8 +176,6 @@ + endif() + if(ENABLE_SSE2) + add_extra_compiler_option(-msse2) +- elseif(X86 OR X86_64) +- add_extra_compiler_option(-mno-sse2) + endif() + if(ARM) + add_extra_compiler_option("-mfp16-format=ieee") diff --git a/media-libs/opencv/files/opencv-3.2.0-fix_ussage_cpu_instructions.patch b/media-libs/opencv/files/opencv-3.2.0-fix_ussage_cpu_instructions.patch new file mode 100644 index 000000000000..7b88216f329a --- /dev/null +++ b/media-libs/opencv/files/opencv-3.2.0-fix_ussage_cpu_instructions.patch @@ -0,0 +1,64 @@ +--- a/cmake/OpenCVCompilerOptions.cmake ++++ b/cmake/OpenCVCompilerOptions.cmake +@@ -164,8 +164,6 @@ if(CMAKE_COMPILER_IS_GNUCXX) + # Other optimizations + if(ENABLE_OMIT_FRAME_POINTER) + add_extra_compiler_option(-fomit-frame-pointer) +- else() +- add_extra_compiler_option(-fno-omit-frame-pointer) + endif() + if(ENABLE_FAST_MATH) + add_extra_compiler_option(-ffast-math) +@@ -195,8 +193,6 @@ if(CMAKE_COMPILER_IS_GNUCXX) + if(NOT MINGW) + if(ENABLE_AVX) + add_extra_compiler_option(-mavx) +- elseif(X86 OR X86_64) +- add_extra_compiler_option(-mno-avx) + endif() + if(ENABLE_AVX2) + add_extra_compiler_option(-mavx2) +@@ -210,26 +206,18 @@ if(CMAKE_COMPILER_IS_GNUCXX) + if(NOT OPENCV_EXTRA_CXX_FLAGS MATCHES "-mavx") + if(ENABLE_SSE3) + add_extra_compiler_option(-msse3) +- elseif(X86 OR X86_64) +- add_extra_compiler_option(-mno-sse3) + endif() + + if(ENABLE_SSSE3) + add_extra_compiler_option(-mssse3) +- elseif(X86 OR X86_64) +- add_extra_compiler_option(-mno-ssse3) + endif() + + if(ENABLE_SSE41) + add_extra_compiler_option(-msse4.1) +- elseif(X86 OR X86_64) +- add_extra_compiler_option(-mno-sse4.1) + endif() + + if(ENABLE_SSE42) + add_extra_compiler_option(-msse4.2) +- elseif(X86 OR X86_64) +- add_extra_compiler_option(-mno-sse4.2) + endif() + + if(ENABLE_POPCNT) +@@ -238,16 +226,6 @@ if(CMAKE_COMPILER_IS_GNUCXX) + endif() + endif(NOT MINGW) + +- if(X86 OR X86_64) +- if(NOT APPLE AND CMAKE_SIZEOF_VOID_P EQUAL 4) +- if(OPENCV_EXTRA_CXX_FLAGS MATCHES "-m(sse2|avx)") +- add_extra_compiler_option(-mfpmath=sse)# !! important - be on the same wave with x64 compilers +- else() +- add_extra_compiler_option(-mfpmath=387) +- endif() +- endif() +- endif() +- + # Profiling? + if(ENABLE_PROFILING) + add_extra_compiler_option("-pg -g" diff --git a/media-libs/opencv/files/opencv-3.2.0-gcc-6.0.patch b/media-libs/opencv/files/opencv-3.2.0-gcc-6.0.patch new file mode 100644 index 000000000000..457d3595e49b --- /dev/null +++ b/media-libs/opencv/files/opencv-3.2.0-gcc-6.0.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVPCHSupport.cmake 2017-06-06 15:05:09.180022719 +0200 ++++ b/cmake/OpenCVPCHSupport.cmake 2017-06-06 15:05:50.775022684 +0200 +@@ -14,7 +14,7 @@ + + IF(CMAKE_COMPILER_IS_GNUCXX) + +- IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0") ++ IF(gcc_compiler_version VERSION_GREATER "4.2.-1" AND gcc_compiler_version VERSION_LESS "6.0.0") + SET(PCHSupport_FOUND TRUE) + ENDIF() + diff --git a/media-libs/opencv/files/opencv-3.2.0-vtk.patch b/media-libs/opencv/files/opencv-3.2.0-vtk.patch new file mode 100644 index 000000000000..1e3daec8aa30 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.2.0-vtk.patch @@ -0,0 +1,11 @@ +--- a/cmake/OpenCVDetectVTK.cmake 2017-03-20 10:43:28.401962910 +0100 ++++ b/cmake/OpenCVDetectVTK.cmake 2017-03-20 10:43:09.127963906 +0100 +@@ -8,7 +8,7 @@ + IF(VTK_RENDERING_BACKEND) #in vtk 7, the rendering backend is exported as a var. + find_package(VTK QUIET COMPONENTS vtkRendering${VTK_RENDERING_BACKEND} vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport vtkIOGeometry NO_MODULE) + ELSE(VTK_RENDERING_BACKEND) +- find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE) ++ find_package(VTK QUIET COMPONENTS vtkRenderingOpenGL2 vtkInteractionStyle vtkRenderingLOD vtkIOPLY vtkFiltersTexture vtkRenderingFreeType vtkIOExport NO_MODULE) + ENDIF(VTK_RENDERING_BACKEND) + ENDIF(VTK_FOUND) + diff --git a/media-libs/opencv/files/opencv-3.3.0-contrib-xfeatures2d.patch b/media-libs/opencv/files/opencv-3.3.0-contrib-xfeatures2d.patch new file mode 100644 index 000000000000..26e4ac767c37 --- /dev/null +++ b/media-libs/opencv/files/opencv-3.3.0-contrib-xfeatures2d.patch @@ -0,0 +1,19 @@ +--- a/modules/xfeatures2d/CMakeLists.txt 2017-09-16 14:28:38.440000000 +0200 ++++ b/modules/xfeatures2d/CMakeLists.txt 2017-09-16 14:27:21.350000000 +0200 +@@ -2,11 +2,11 @@ + + ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d opencv_calib3d OPTIONAL opencv_shape opencv_cudaarithm WRAP python java) + ++#include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) ++#include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) ++#set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d") ++#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) ++#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) +-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake) +-include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake) +-set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d") +-download_boost_descriptors("${DOWNLOAD_DIR}" boost_status) +-download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status) + if(NOT boost_status OR NOT vgg_status) + ocv_module_disable(xfeatures2d) + endif() diff --git a/media-libs/opencv/metadata.xml b/media-libs/opencv/metadata.xml new file mode 100644 index 000000000000..271e88041349 --- /dev/null +++ b/media-libs/opencv/metadata.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>amynka@gentoo.org</email> + <name>Amy Liffey</name> + <description>Assign bugs on me.</description> + </maintainer> + <maintainer type="person"> + <email>dilfridge@gentoo.org</email> + <name>Andreas K. Huettel</name> + </maintainer> + <longdescription> +OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real time computer vision. +Example applications of the OpenCV library are Human-Computer Interaction (HCI); Object Identification, Segmentation and Recognition; +Face Recognition; Gesture Recognition; Motion Tracking, Ego Motion, Motion Understanding; Structure From Motion (SFM); and Mobile Robotics. +</longdescription> + <use> + <flag name="contrib">Install user contributed scripts from opencv_contrib (Experimental!)</flag> + <flag name="cuda">Enable NVIDIA Cuda computations support (Experimental!)</flag> + <flag name="eigen">Enable usage of <pkg>dev-cpp/eigen</pkg> for computations</flag> + <flag name="gdal">Enable support for sci-libs/gdal library</flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="gflags">Use Google's C++ argument parsing library</flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="glog">Use Google's C++ loggin library</flag> + <flag name="ipp">Enable Intel Integrated Primitive support</flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="contrib_xfeatures2d">Enables xfeatures2d and autodownload of samples in contrib</flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="contrib_cvv">CVV module requires Qt5</flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="contrib_hdf">HDF module requires <pkg>sci-libs/hdf5</pkg></flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="contrib_sfm">SFM module requires eigen, gflags, and glog</flag> + <flag name="opencl">Add support for OpenCL</flag> + <flag restrict=">=media-libs/opencv-3.1.0" name="tesseract">Use Google's OCR Engine</flag> + <flag name="testprograms">Build and install programs for testing OpenCV (performance)</flag> + <flag name="vtk">Build new 3D visualization module viz based on sci-libs/vtk</flag> + <flag name="webp">Enable support for webp image format</flag> + </use> + <upstream> + <remote-id type="sourceforge">opencvlibrary</remote-id> + <remote-id type="github">Itseez/opencv_contrib</remote-id> + </upstream> +</pkgmetadata> diff --git a/media-libs/opencv/opencv-2.4.13-r2.ebuild b/media-libs/opencv/opencv-2.4.13-r2.ebuild new file mode 100644 index 000000000000..4158e701ea41 --- /dev/null +++ b/media-libs/opencv/opencv-2.4.13-r2.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python2_7 ) + +inherit toolchain-funcs cmake-utils python-single-r1 java-pkg-opt-2 java-ant-2 + +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems" +HOMEPAGE="http://opencv.org" + +SRC_URI="https://github.com/Itseez/opencv/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0/2.4" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="cuda +eigen examples ffmpeg gstreamer gtk ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png +python qt4 qt5 testprograms threads tiff v4l vtk xine" +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + ?? ( qt4 qt5 ) +" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt4 ) +# opengl? ( || ( gtk qt4 ) ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2 + sys-libs/zlib + cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 ) + ffmpeg? ( + libav? ( media-video/libav:0= ) + !libav? ( media-video/ffmpeg:0= ) + ) + gstreamer? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) + gtk? ( + dev-libs/glib:2 + x11-libs/gtk+:2 + opengl? ( x11-libs/gtkglext ) + ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0 ) + jpeg2k? ( media-libs/jasper:= ) + ieee1394? ( + media-libs/libdc1394 + sys-libs/libraw1394 + ) + ipp? ( sci-libs/ipp ) + opencl? ( virtual/opencl ) + openexr? ( media-libs/openexr ) + opengl? ( virtual/opengl virtual/glu ) + png? ( media-libs/libpng:0= ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt4? ( + dev-qt/qtgui:4 + dev-qt/qttest:4 + opengl? ( dev-qt/qtopengl:4 ) + ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + threads? ( dev-cpp/tbb ) + tiff? ( media-libs/tiff:0 ) + v4l? ( >=media-libs/libv4l-0.8.3 ) + vtk? ( sci-libs/vtk[rendering] ) + xine? ( media-libs/xine-lib ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.3.1a-libav-0.7.patch" + "${FILESDIR}/${PN}-2.4.3-gcc47.patch" + "${FILESDIR}/${PN}-2.4.2-cflags.patch" + "${FILESDIR}/${PN}-2.4.8-javamagic.patch" + "${FILESDIR}/${PN}-2.4.9-cuda-pkg-config.patch" + "${FILESDIR}/${PN}-3.0.0-gles.patch" + "${FILESDIR}/${P}-gcc-6.0.patch" + "${FILESDIR}/${P}-imgcodecs-refactoring.patch" #bug 627958 +) + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + use python && python-single-r1_pkg_setup + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -i \ + -e '/add_subdirectory(3rdparty)/ d' \ + CMakeLists.txt || die + + java-pkg-opt-2_src_prepare +} + +src_configure() { + + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure + + # please dont sort here, order is the same as in CMakeLists.txt + local mycmakeargs=( + # the optinal dependency libraries + -DWITH_1394=$(usex ieee1394) + -DWITH_AVFOUNDATION=OFF + -DWITH_VTK=$(usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF + -DWITH_GTK=$(usex gtk) + -DWITH_IMAGEIO=OFF + -DWITH_IPP=$(usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENNI=OFF + -DWITH_PNG=$(usex png) + -DWITH_PVAPI=OFF + -DWITH_GIGEAPI=OFF + -DWITH_WIN32UI=OFF + -DWITH_QUICKTIME=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF + -DWITH_XINE=$(usex xine) + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(usex java) + + # the build components + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -DBUILD_DOCS=OFF #too much dark magic in cmakelists + -DBUILD_EXAMPLES=$(usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(usex testprograms) + + # install examples + -DINSTALL_C_EXAMPLES=$(usex examples) + -DINSTALL_TESTS=$(usex testprograms) + + # build options + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DENABLE_SOLUTION_FOLDERS=OFF + -DENABLE_PROFILING=OFF + -DENABLE_COVERAGE=OFF + -DENABLE_OMIT_FRAME_POINTER=OFF + -DENABLE_FAST_MATH=OFF # + -DENABLE_SSE=OFF # these options do nothing but + -DENABLE_SSE2=OFF # add params to CFLAGS + -DENABLE_SSE3=OFF + -DENABLE_SSSE3=OFF + -DENABLE_SSE41=OFF + -DENABLE_SSE42=OFF + + -DOPENCV_EXTRA_FLAGS_RELEASE="" # black magic + ) + + if use qt4; then + mycmakeargs+=( -DWITH_QT=4 ) + elif use qt5; then + mycmakeargs+=( -DWITH_QT=5 ) + else + mycmakeargs+=( -DWITH_QT=OFF ) + fi + + if use cuda; then + if [[ "$(gcc-version)" > "4.8" ]]; then + # bug 577410 + # #error -- unsupported GNU version! gcc 4.9 and up are not supported! + ewarn "CUDA and >=sys-devel/gcc-4.9 do not play well together. Disabling CUDA support." + mycmakeargs+=( -DWITH_CUDA=OFF ) + mycmakeargs+=( -DWITH_CUBLAS=OFF ) + mycmakeargs+=( -DWITH_CUFFT=OFF ) + + else + mycmakeargs+=( -DWITH_CUDA=ON ) + mycmakeargs+=( -DWITH_CUBLAS=ON ) + mycmakeargs+=( -DWITH_CUFFT=ON ) + mycmakeargs+=( -DCUDA_NPP_LIBRARY_ROOT_DIR=/opt/cuda ) + fi + else + mycmakeargs+=( -DWITH_CUDA=OFF ) + mycmakeargs+=( -DWITH_CUBLAS=OFF ) + mycmakeargs+=( -DWITH_CUFFT=OFF ) + fi + + if use examples && use python; then + mycmakeargs+=( -DINSTALL_PYTHON_EXAMPLES=ON ) + else + mycmakeargs+=( -DINSTALL_PYTHON_EXAMPLES=OFF ) + fi + + # things we want to be hard off or not yet figured out + mycmakeargs+=( + -DOPENCV_BUILD_3RDPARTY_LIBS=OFF + -DBUILD_PACKAGE=OFF + ) + + # things we want to be hard enabled not worth useflag + mycmakeargs+=( + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # workaround for bug 413429 + tc-export CC CXX + + cmake-utils_src_configure +} diff --git a/media-libs/opencv/opencv-2.4.13.ebuild b/media-libs/opencv/opencv-2.4.13.ebuild new file mode 100644 index 000000000000..c43b5842200d --- /dev/null +++ b/media-libs/opencv/opencv-2.4.13.ebuild @@ -0,0 +1,240 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python2_7 ) + +inherit toolchain-funcs cmake-utils python-single-r1 java-pkg-opt-2 java-ant-2 + +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems" +HOMEPAGE="http://opencv.org" + +SRC_URI="https://github.com/Itseez/opencv/archive/${PV}.zip -> ${P}.zip" + +LICENSE="BSD" +SLOT="0/2.4" +KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86 ~amd64-linux" +IUSE="cuda +eigen examples ffmpeg gstreamer gtk ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png +python qt4 qt5 testprograms threads tiff v4l vtk xine" +REQUIRED_USE=" + python? ( ${PYTHON_REQUIRED_USE} ) + ?? ( qt4 qt5 ) +" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt4 ) +# opengl? ( || ( gtk qt4 ) ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2 + sys-libs/zlib + cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 ) + ffmpeg? ( + libav? ( media-video/libav:0= ) + !libav? ( media-video/ffmpeg:0= ) + ) + gstreamer? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) + gtk? ( + dev-libs/glib:2 + x11-libs/gtk+:2 + opengl? ( x11-libs/gtkglext ) + ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0 ) + jpeg2k? ( media-libs/jasper:= ) + ieee1394? ( + media-libs/libdc1394 + sys-libs/libraw1394 + ) + ipp? ( sci-libs/ipp ) + opencl? ( virtual/opencl ) + openexr? ( media-libs/openexr ) + opengl? ( virtual/opengl virtual/glu ) + png? ( media-libs/libpng:0= ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt4? ( + dev-qt/qtgui:4 + dev-qt/qttest:4 + opengl? ( dev-qt/qtopengl:4 ) + ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + threads? ( dev-cpp/tbb ) + tiff? ( media-libs/tiff:0 ) + v4l? ( >=media-libs/libv4l-0.8.3 ) + vtk? ( sci-libs/vtk[rendering] ) + xine? ( media-libs/xine-lib ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 ) +" + +PATCHES=( + "${FILESDIR}/${PN}-2.3.1a-libav-0.7.patch" + "${FILESDIR}/${PN}-2.4.3-gcc47.patch" + "${FILESDIR}/${PN}-2.4.2-cflags.patch" + "${FILESDIR}/${PN}-2.4.8-javamagic.patch" + "${FILESDIR}/${PN}-2.4.9-cuda-pkg-config.patch" + "${FILESDIR}/${PN}-3.0.0-gles.patch" + ) + +#"${FILESDIR}/${P}-git-autodetect.patch + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + use python && python-single-r1_pkg_setup + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -i \ + -e '/add_subdirectory(3rdparty)/ d' \ + CMakeLists.txt || die + + java-pkg-opt-2_src_prepare +} + +src_configure() { + + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure + + # please dont sort here, order is the same as in CMakeLists.txt + local mycmakeargs=( + # the optinal dependency libraries + -DWITH_1394=$(usex ieee1394) + -DWITH_AVFOUNDATION=OFF + -DWITH_VTK=$(usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF + -DWITH_GTK=$(usex gtk) + -DWITH_IMAGEIO=OFF + -DWITH_IPP=$(usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENNI=OFF + -DWITH_PNG=$(usex png) + -DWITH_PVAPI=OFF + -DWITH_GIGEAPI=OFF + -DWITH_WIN32UI=OFF + -DWITH_QUICKTIME=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF + -DWITH_XINE=$(usex xine) + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(usex java) + + # the build components + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -DBUILD_DOCS=OFF #too much dark magic in cmakelists + -DBUILD_EXAMPLES=$(usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(usex testprograms) + + # install examples + -DINSTALL_C_EXAMPLES=$(usex examples) + -DINSTALL_TESTS=$(usex testprograms) + + # build options + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DENABLE_SOLUTION_FOLDERS=OFF + -DENABLE_PROFILING=OFF + -DENABLE_COVERAGE=OFF + -DENABLE_OMIT_FRAME_POINTER=OFF + -DENABLE_FAST_MATH=OFF # + -DENABLE_SSE=OFF # these options do nothing but + -DENABLE_SSE2=OFF # add params to CFLAGS + -DENABLE_SSE3=OFF + -DENABLE_SSSE3=OFF + -DENABLE_SSE41=OFF + -DENABLE_SSE42=OFF + + -DOPENCV_EXTRA_FLAGS_RELEASE="" # black magic + ) + + if use qt4; then + mycmakeargs+=( -DWITH_QT=4 ) + elif use qt5; then + mycmakeargs+=( -DWITH_QT=5 ) + else + mycmakeargs+=( -DWITH_QT=OFF ) + fi + + if use cuda; then + if [[ "$(gcc-version)" > "4.8" ]]; then + # bug 577410 + # #error -- unsupported GNU version! gcc 4.9 and up are not supported! + ewarn "CUDA and >=sys-devel/gcc-4.9 do not play well together. Disabling CUDA support." + mycmakeargs+=( -DWITH_CUDA=OFF ) + mycmakeargs+=( -DWITH_CUBLAS=OFF ) + mycmakeargs+=( -DWITH_CUFFT=OFF ) + + else + mycmakeargs+=( -DWITH_CUDA=ON ) + mycmakeargs+=( -DWITH_CUBLAS=ON ) + mycmakeargs+=( -DWITH_CUFFT=ON ) + mycmakeargs+=( -DCUDA_NPP_LIBRARY_ROOT_DIR=/opt/cuda ) + fi + else + mycmakeargs+=( -DWITH_CUDA=OFF ) + mycmakeargs+=( -DWITH_CUBLAS=OFF ) + mycmakeargs+=( -DWITH_CUFFT=OFF ) + fi + + if use examples && use python; then + mycmakeargs+=( -DINSTALL_PYTHON_EXAMPLES=ON ) + else + mycmakeargs+=( -DINSTALL_PYTHON_EXAMPLES=OFF ) + fi + + # things we want to be hard off or not yet figured out + mycmakeargs+=( + -DOPENCV_BUILD_3RDPARTY_LIBS=OFF + -DBUILD_PACKAGE=OFF + ) + + # things we want to be hard enabled not worth useflag + mycmakeargs+=( + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # workaround for bug 413429 + tc-export CC CXX + + cmake-utils_src_configure +} diff --git a/media-libs/opencv/opencv-3.1.0-r8.ebuild b/media-libs/opencv/opencv-3.1.0-r8.ebuild new file mode 100644 index 000000000000..d98e0e09ffd7 --- /dev/null +++ b/media-libs/opencv/opencv-3.1.0-r8.ebuild @@ -0,0 +1,328 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit toolchain-funcs python-r1 java-pkg-opt-2 java-ant-2 \ + cmake-multilib + +DESCRIPTION="A collection of algorithms and sample code for + various computer vision problems" +HOMEPAGE="http://opencv.org" + +BASE_URI="https://github.com/${PN}/${PN}" +#commit from Thu, 02 Jun 2016 +CONTRIB_URI="75b3ea9f72fdb083140fc63855b7677d67748376" +CONTRIB_P="${P}_contrib-${CONTRIB_URI:0:7}" + +SRC_URI="${BASE_URI}/archive/${PV}.tar.gz -> ${P}.tar.gz + contrib? ( ${BASE_URI}_contrib/archive/${CONTRIB_URI}.tar.gz -> ${CONTRIB_P}.tar.gz )" +LICENSE="BSD" +SLOT="0/3.1" # subslot = libopencv* soname version +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="contrib cuda +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk \ + ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png \ + +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine \ + contrib_cvv contrib_hdf contrib_sfm" + +# OpenGL needs gtk or Qt installed to activate, otherwise build system +# will silently disable it without the user knowing, which defeats the +# purpose of the opengl use flag. +REQUIRED_USE=" + cuda? ( tesseract? ( opencl ) ) + gflags? ( contrib ) + glog? ( contrib ) + contrib_cvv? ( contrib qt5 ) + contrib_hdf? ( contrib ) + contrib_sfm? ( contrib eigen gflags glog ) + opengl? ( || ( gtk qt5 ) ) + python? ( ${PYTHON_REQUIRED_USE} ) + tesseract? ( contrib )" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt5 ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:0= ) + ffmpeg? ( + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] ) + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] ) + ) + gdal? ( sci-libs/gdal ) + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] ) + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] ) + gstreamer? ( + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + ) + gtk? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + x11-libs/gtk+:2[${MULTILIB_USEDEP}] + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] ) + ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] ) + jpeg2k? ( media-libs/jasper:=[${MULTILIB_USEDEP}] ) + ieee1394? ( + media-libs/libdc1394[${MULTILIB_USEDEP}] + sys-libs/libraw1394[${MULTILIB_USEDEP}] + ) + ipp? ( sci-libs/ipp ) + contrib_hdf? ( sci-libs/hdf5 ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] ) + opengl? ( + virtual/opengl[${MULTILIB_USEDEP}] + virtual/glu[${MULTILIB_USEDEP}] + ) + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + tesseract? ( app-text/tesseract[opencl=] ) + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] ) + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] ) + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] ) + vtk? ( sci-libs/vtk[rendering] ) + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] ) + xine? ( media-libs/xine-lib )" +DEPEND="${RDEPEND} + virtual/pkgconfig[${MULTILIB_USEDEP}] + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/opencv2/cvconfig.h + /usr/include/opencv2/opencv_modules.hpp + # [contrib_cvv] + /usr/include/opencv2/cvv.hpp + /usr/include/opencv2/cvv/call_meta_data.hpp + /usr/include/opencv2/cvv/cvv.hpp + /usr/include/opencv2/cvv/debug_mode.hpp + /usr/include/opencv2/cvv/dmatch.hpp + /usr/include/opencv2/cvv/filter.hpp + /usr/include/opencv2/cvv/final_show.hpp + /usr/include/opencv2/cvv/show_image.hpp + # [contrib_hdf] + /usr/include/opencv2/hdf.hpp + /usr/include/opencv2/hdf/hdf5.hpp + # [vtk] + /usr/include/opencv2/viz.hpp + /usr/include/opencv2/viz/types.hpp + /usr/include/opencv2/viz/viz3d.hpp + /usr/include/opencv2/viz/vizcore.hpp + /usr/include/opencv2/viz/widget_accessor.hpp + /usr/include/opencv2/viz/widgets.hpp +) + +PATCHES=( + "${FILESDIR}"/${PN}-3.0.0-gles.patch + "${FILESDIR}"/${P}-cmake-no-opengl.patch + "${FILESDIR}"/${P}-git-autodetect.patch + "${FILESDIR}"/${P}-java-magic.patch + "${FILESDIR}"/${P}-remove-graphcut-for-cuda-8.patch + "${FILESDIR}"/${P}-find-libraries-fix.patch +) + +GLOBALCMAKEARGS=() + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \ + -i CMakeLists.txt cmake/*cmake || die + + java-pkg-opt-2_src_prepare + + # this really belongs in src_prepare() too + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure +} + +multilib_src_configure() { + # please dont sort here, order is the same as in CMakeLists.txt + GLOBALCMAKEARGS=( + # Optional 3rd party components + # =================================================== + -DWITH_1394=$(usex ieee1394) + -DWITH_AVFOUNDATION=OFF # IOS + -DWITH_VTK=$(multilib_native_usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF # Video windows support + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF # Don't want this + -DWITH_GTK=$(usex gtk) + -DWITH_GTK_2_X=$(usex gtk) + -DWITH_IPP=$(multilib_native_usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_WEBP=$(usex webp) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENNI=OFF # Not packaged + -DWITH_OPENNI2=OFF # Not packaged + -DWITH_PNG=$(usex png) + -DWITH_PVAPI=OFF # Not packaged + -DWITH_GIGEAPI=OFF + -DWITH_QT=$(multilib_native_usex qt5 5 OFF) + -DWITH_WIN32UI=OFF # Windows only + -DWITH_QUICKTIME=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_PTHREADS_PF=ON + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF # Not packaged + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON # direct show supp + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF # Windows only + -DWITH_XINE=$(multilib_native_usex xine) + -DWITH_CLP=OFF + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCL_SVM=OFF + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_DIRECTX=OFF + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag + -DWITH_IPP_A=OFF + -DWITH_MATLAB=OFF + -DWITH_VA=$(usex vaapi) + -DWITH_VA_INTEL=$(usex vaapi) + -DWITH_GDAL=$(multilib_native_usex gdal) + -DWITH_GPHOTO2=$(usex gphoto2) + # =================================================== + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version + # =================================================== + -DWITH_CUDA=$(multilib_native_usex cuda) + -DWITH_CUBLAS=$(multilib_native_usex cuda) + -DWITH_CUFFT=$(multilib_native_usex cuda) + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "") + # =================================================== + # OpenCV build components + # =================================================== + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -DBUILD_DOCS=OFF # Doesn't install anyways. + -DBUILD_EXAMPLES=$(multilib_native_usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(multilib_native_usex testprograms) + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${CONTRIB_URI}/modules" "") + # =================================================== + # OpenCV installation options + # =================================================== + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples) + -DINSTALL_TESTS=$(multilib_native_usex testprograms) + # =================================================== + # OpenCV build options + # =================================================== + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DHAVE_opencv_java=$(multilib_native_usex java YES NO) + # =================================================== + # things we want to be hard off or not yet figured out + # =================================================== + -DBUILD_PACKAGE=OFF + -DENABLE_PROFILING=OFF + # =================================================== + # things we want to be hard enabled not worth useflag + # =================================================== + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # =================================================== + # OpenCV Contrib Modules + # =================================================== + if use contrib; then + GLOBALCMAKEARGS+=( + -DBUILD_opencv_dnn=OFF + -DBUILD_opencv_dnns_easily_fooled=OFF + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF) + -DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF) + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF) + ) + + if multilib_is_native_abi; then + GLOBALCMAKEARGS+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract) + ) + else + GLOBALCMAKEARGS+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON + ) + fi + fi + + # workaround for bug 413429 + tc-export CC CXX + + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} + -DPYTHON_EXECUTABLE=OFF + -DINSTALL_PYTHON_EXAMPLES=OFF + ) + + cmake-utils_src_configure +} + +python_module_compile() { + local BUILD_DIR=${orig_BUILD_DIR} + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} ) + + # Set all python variables to load the correct Gentoo paths + mycmakeargs+=( + # upstream doesn't really care about 2/3, and if we don't + # disable this, it builds python2 + python3 module for the same + # version of Python 3 (i.e. two identical modules)... + -DPYTHON3_EXECUTABLE=/bin/false + -DINSTALL_PYTHON_EXAMPLES=$(usex examples) + ) + + # Regenerate cache file. Can't use rebuild_cache as it won't + # have the Gentoo specific options. + rm -rf CMakeCache.txt || die "rm failed" + cmake-utils_src_configure + cmake-utils_src_compile + cmake-utils_src_install + + # Remove compiled binary so new version compiles + # Avoid conflicts with new module builds as build system doesn't + # really support it. + rm -rf modules/python2 || die "rm failed" +} + +multilib_src_install() { + cmake-utils_src_install + + # Build and install the python modules for all targets + if multilib_is_native_abi && use python; then + local orig_BUILD_DIR=${BUILD_DIR} + python_foreach_impl python_module_compile + fi +} diff --git a/media-libs/opencv/opencv-3.2.0-r2.ebuild b/media-libs/opencv/opencv-3.2.0-r2.ebuild new file mode 100644 index 000000000000..7d0aeabcf7f5 --- /dev/null +++ b/media-libs/opencv/opencv-3.2.0-r2.ebuild @@ -0,0 +1,332 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit toolchain-funcs cmake-utils python-r1 java-pkg-opt-2 java-ant-2 + +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems" +HOMEPAGE="http://opencv.org" + +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz + contrib? ( https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz + contrib_xfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-${PV}.tar.gz ) )" +LICENSE="BSD" +SLOT="0/3.2" # subslot = libopencv* soname version +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="contrib cuda debug +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 ipp jpeg jpeg2k lapack libav opencl openexr opengl openmp pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine contrib_cvv contrib_hdf contrib_sfm contrib_xfeatures2d" + +# OpenGL needs gtk or Qt installed to activate, otherwise build system +# will silently disable it without the user knowing, which defeats the +# purpose of the opengl use flag. +REQUIRED_USE=" + cuda? ( tesseract? ( opencl ) ) + gflags? ( contrib ) + glog? ( contrib ) + contrib_cvv? ( contrib qt5 ) + contrib_hdf? ( contrib ) + contrib_sfm? ( contrib eigen gflags glog ) + opengl? ( || ( gtk qt5 ) ) + python? ( ${PYTHON_REQUIRED_USE} ) + tesseract? ( contrib )" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt5 ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2 + sys-libs/zlib + cuda? ( dev-util/nvidia-cuda-toolkit:0= ) + contrib_hdf? ( sci-libs/hdf5 ) + ffmpeg? ( + libav? ( media-video/libav:0= ) + !libav? ( media-video/ffmpeg:0= ) + ) + gdal? ( sci-libs/gdal:= ) + gflags? ( dev-cpp/gflags ) + glog? ( dev-cpp/glog ) + gphoto2? ( media-libs/libgphoto2 ) + gstreamer? ( + media-libs/gstreamer:1.0 + media-libs/gst-plugins-base:1.0 + ) + gtk? ( + dev-libs/glib:2 + x11-libs/gtk+:2 + opengl? ( x11-libs/gtkglext ) + ) + ieee1394? ( + media-libs/libdc1394 + sys-libs/libraw1394 + ) + ipp? ( sci-libs/ipp ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0 ) + jpeg2k? ( media-libs/jasper:= ) + lapack? ( virtual/lapack ) + opencl? ( virtual/opencl ) + openexr? ( media-libs/openexr ) + opengl? ( virtual/opengl virtual/glu ) + png? ( media-libs/libpng:0= ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + tesseract? ( app-text/tesseract[opencl=] ) + threads? ( dev-cpp/tbb ) + tiff? ( media-libs/tiff:0 ) + v4l? ( >=media-libs/libv4l-0.8.3 ) + vtk? ( sci-libs/vtk[rendering] ) + webp? ( media-libs/libwebp ) + xine? ( media-libs/xine-lib )" +DEPEND="${RDEPEND} + virtual/pkgconfig + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 )" + +PATCHES=( + "${FILESDIR}/${PN}-3.0.0-gles.patch" + "${FILESDIR}/${PN}-3.1.0-java-magic.patch" + "${FILESDIR}/${PN}-3.1.0-find-libraries-fix.patch" + "${FILESDIR}/${P}-vtk.patch" + "${FILESDIR}/${P}-gcc-6.0.patch" + "${FILESDIR}/${PN}-3.2.0-fix_ussage_cpu_instructions.patch" + "${FILESDIR}/${P}-cpu-mno-sse2.patch" +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \ + -i CMakeLists.txt cmake/*cmake || die + + if use contrib && use contrib_xfeatures2d; then + cd "${WORKDIR}/${PN}_contrib-${PV}" || die + eapply "${FILESDIR}/${P}-contrib_xfeatures2d-autodownload.patch" + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die + fi + + java-pkg-opt-2_src_prepare +} + +src_configure() { + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure + + # please dont sort here, order is the same as in CMakeLists.txt + GLOBALCMAKEARGS=( + # Optional 3rd party components + # =================================================== + -DWITH_1394=$(usex ieee1394) + # -DWITH_AVFOUNDATION=OFF # IOS + -DWITH_VTK=$(usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF # Video windows support + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF # Don't want this + -DWITH_GTK=$(usex gtk) + -DWITH_GTK_2_X=$(usex gtk) + -DWITH_IPP=$(usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_WEBP=$(usex webp) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENVX=OFF + -DWITH_OPENNI=OFF # Not packaged + -DWITH_OPENNI2=OFF # Not packaged + -DWITH_PNG=$(usex png) + -DWITH_GDCM=OFF + -DWITH_PVAPI=OFF + -DWITH_GIGEAPI=OFF + -DWITH_ARAVIS=OFF + -DWITH_QT=$(usex qt5 5 OFF) + -DWITH_WIN32UI=OFF # Windows only + # -DWITH_QUICKTIME=OFF + # -DWITH_QTKIT=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_PTHREADS_PF=ON + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF # Not packaged + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON # direct show supp + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF # Windows only + -DWITH_XINE=$(usex xine) + -DWITH_CLP=OFF + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCL_SVM=OFF + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_DIRECTX=OFF + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(usex java) # Ant needed, no compile flag + -DWITH_IPP_A=OFF + -DWITH_MATLAB=OFF + -DWITH_VA=$(usex vaapi) + -DWITH_VA_INTEL=$(usex vaapi) + -DWITH_GDAL=$(usex gdal) + -DWITH_GPHOTO2=$(usex gphoto2) + -DWITH_LAPACK=$(usex lapack) + # =================================================== + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version + # =================================================== + -DWITH_CUDA=$(usex cuda) + -DWITH_CUBLAS=$(usex cuda) + -DWITH_CUFFT=$(usex cuda) + -DWITH_NVCUVID=OFF +# -DWITH_NVCUVID=$(usex cuda) + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "") + # =================================================== + # OpenCV build components + # =================================================== + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -BUILD_opencv_apps= + -DBUILD_DOCS=OFF # Doesn't install anyways. + -DBUILD_EXAMPLES=$(usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(usex testprograms) + -DBUILD_WITH_DEBUG_INFO=$(usex debug) + # -DBUILD_WITH_STATIC_CRT=OFF + -DBUILD_WITH_DYNAMIC_IPP=OFF + -DBUILD_FAT_JAVA_LIB=$(usex java) + # -DBUILD_ANDROID_SERVICE=OFF + -DBUILD_CUDA_STUBS=$(usex cuda) + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "") + # =================================================== + # OpenCV installation options + # =================================================== + -DINSTALL_CREATE_DISTRIB=OFF + -DINSTALL_C_EXAMPLES=$(usex examples) + -DINSTALL_TESTS=$(usex testprograms) + -DINSTALL_PYTHON_EXAMPLES=$(usex examples) + # -DINSTALL_ANDROID_EXAMPLES=OFF + -DINSTALL_TO_MANGLED_PATHS=OFF + # =================================================== + # OpenCV build options + # =================================================== + -DENABLE_CCACHE=OFF + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DENABLE_SOLUTION_FOLDERS=OFF + -DENABLE_PROFILING=OFF + -DENABLE_COVERAGE=OFF + -DENABLE_OMIT_FRAME_POINTER=OFF + -DENABLE_FAST_MATH=OFF + -DENABLE_SSE=OFF + -DENABLE_SSE2=OFF + -DENABLE_SSE3=OFF + -DENABLE_SSSE3=OFF + -DENABLE_SSE41=OFF + -DENABLE_SSE42=OFF + -DENABLE_POPCNT=OFF + -DENABLE_AVX=OFF + -DENABLE_AVX=OFF + -DENABLE_AVX2=OFF + -DENABLE_FMA3=OFF + -DENABLE_NEON=OFF + + -DHAVE_opencv_java=$(usex java YES NO) + -DENABLE_NOISY_WARNINGS=OFF + -DOPENCV_WARNINGS_ARE_ERRORS=OFF + -DENABLE_IMPL_COLLECTION=OFF + -DENABLE_INSTRUMENTATION=OFF + -DGENERATE_ABI_DESCRIPTOR=OFF + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF + # =================================================== + # things we want to be hard off or not yet figured out + # =================================================== + -DBUILD_PACKAGE=OFF + -DENABLE_PROFILING=OFF + # =================================================== + # things we want to be hard enabled not worth useflag + # =================================================== + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # =================================================== + # OpenCV Contrib Modules + # =================================================== + if use contrib; then + GLOBALCMAKEARGS+=( + -DBUILD_opencv_dnn=OFF + -DBUILD_opencv_dnns_easily_fooled=OFF + -DBUILD_opencv_xfeatures2d=$(usex contrib_xfeatures2d ON OFF) + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF) + -DBUILD_opencv_hdf=$(usex contrib_hdf ON OFF) + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF) + ) + fi + + # workaround for bug 413429 + tc-export CC CXX + + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} + -DPYTHON_EXECUTABLE=OFF + -DINSTALL_PYTHON_EXAMPLES=OFF + ) + + cmake-utils_src_configure +} + +python_module_compile() { + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} ) + + # Set all python variables to load the correct Gentoo paths + mycmakeargs+=( + # cheap trick: python_setup sets one of them as a symlink + # to the correct interpreter, and the other to fail-wrapper + -DPYTHON2_EXECUTABLE=$(type -P python2) + -DPYTHON3_EXECUTABLE=$(type -P python3) + -DINSTALL_PYTHON_EXAMPLES=$(usex examples) + ) + + # Compile and install all at once because configuration will be wiped + # for each impl of Python + BUILD_DIR="${WORKDIR}"/${P}_build + cd "${BUILD_DIR}" || die "cd failed" + + # Regenerate cache file. Can't use rebuild_cache as it won't + # have the Gentoo specific options. + rm -rf CMakeCache.txt || die "rm failed" + cmake-utils_src_configure + cmake-utils_src_compile + cmake-utils_src_install + + # Remove compiled binary so new version compiles + # Avoid conflicts with new module builds as build system doesn't + # really support it. + rm -rf modules/python2 || die "rm failed" +} + +src_install() { + cmake-utils_src_install + + # Build and install the python modules for all targets + use python && python_foreach_impl python_module_compile +} diff --git a/media-libs/opencv/opencv-3.2.0-r3.ebuild b/media-libs/opencv/opencv-3.2.0-r3.ebuild new file mode 100644 index 000000000000..94e5af0f524c --- /dev/null +++ b/media-libs/opencv/opencv-3.2.0-r3.ebuild @@ -0,0 +1,370 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit toolchain-funcs python-r1 java-pkg-opt-2 java-ant-2 \ + cmake-multilib + +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems" +HOMEPAGE="http://opencv.org" + +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz + contrib? ( https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz + contrib_xfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-${PV}.tar.gz ) )" +LICENSE="BSD" +SLOT="0/3.2" # subslot = libopencv* soname version +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="contrib cuda debug +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 ipp jpeg jpeg2k lapack libav opencl openexr opengl openmp pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine contrib_cvv contrib_hdf contrib_sfm contrib_xfeatures2d" + +# OpenGL needs gtk or Qt installed to activate, otherwise build system +# will silently disable it without the user knowing, which defeats the +# purpose of the opengl use flag. +REQUIRED_USE=" + cuda? ( tesseract? ( opencl ) ) + gflags? ( contrib ) + glog? ( contrib ) + contrib_cvv? ( contrib qt5 ) + contrib_hdf? ( contrib ) + contrib_sfm? ( contrib eigen gflags glog ) + opengl? ( || ( gtk qt5 ) ) + python? ( ${PYTHON_REQUIRED_USE} ) + tesseract? ( contrib )" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt5 ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:0= ) + contrib_hdf? ( sci-libs/hdf5 ) + ffmpeg? ( + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] ) + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] ) + ) + gdal? ( sci-libs/gdal:= ) + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] ) + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] ) + gstreamer? ( + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + ) + gtk? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + x11-libs/gtk+:2[${MULTILIB_USEDEP}] + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] ) + ) + ieee1394? ( + media-libs/libdc1394[${MULTILIB_USEDEP}] + sys-libs/libraw1394[${MULTILIB_USEDEP}] + ) + ipp? ( sci-libs/ipp ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] ) + jpeg2k? ( media-libs/jasper:=[${MULTILIB_USEDEP}] ) + lapack? ( virtual/lapack ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] ) + opengl? ( + virtual/opengl[${MULTILIB_USEDEP}] + virtual/glu[${MULTILIB_USEDEP}] + ) + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + tesseract? ( app-text/tesseract[opencl=] ) + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] ) + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] ) + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] ) + vtk? ( sci-libs/vtk[rendering] ) + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] ) + xine? ( media-libs/xine-lib )" +DEPEND="${RDEPEND} + virtual/pkgconfig[${MULTILIB_USEDEP}] + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/opencv2/cvconfig.h + /usr/include/opencv2/opencv_modules.hpp + # [contrib_cvv] + /usr/include/opencv2/cvv.hpp + /usr/include/opencv2/cvv/call_meta_data.hpp + /usr/include/opencv2/cvv/cvv.hpp + /usr/include/opencv2/cvv/debug_mode.hpp + /usr/include/opencv2/cvv/dmatch.hpp + /usr/include/opencv2/cvv/filter.hpp + /usr/include/opencv2/cvv/final_show.hpp + /usr/include/opencv2/cvv/show_image.hpp + # [contrib_hdf] + /usr/include/opencv2/hdf.hpp + /usr/include/opencv2/hdf/hdf5.hpp + # [vtk] + /usr/include/opencv2/viz.hpp + /usr/include/opencv2/viz/types.hpp + /usr/include/opencv2/viz/viz3d.hpp + /usr/include/opencv2/viz/vizcore.hpp + /usr/include/opencv2/viz/widget_accessor.hpp + /usr/include/opencv2/viz/widgets.hpp +) + +PATCHES=( + "${FILESDIR}/${PN}-3.0.0-gles.patch" + "${FILESDIR}/${PN}-3.1.0-java-magic.patch" + "${FILESDIR}/${PN}-3.1.0-find-libraries-fix.patch" + "${FILESDIR}/${P}-vtk.patch" + "${FILESDIR}/${P}-gcc-6.0.patch" + "${FILESDIR}/${PN}-3.2.0-fix_ussage_cpu_instructions.patch" + "${FILESDIR}/${P}-cpu-mno-sse2.patch" +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \ + -i CMakeLists.txt cmake/*cmake || die + + if use contrib && use contrib_xfeatures2d; then + cd "${WORKDIR}/${PN}_contrib-${PV}" || die + eapply "${FILESDIR}/${P}-contrib_xfeatures2d-autodownload.patch" + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die + fi + + java-pkg-opt-2_src_prepare + + # this really belongs in src_prepare() too + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure +} + +multilib_src_configure() { + # please dont sort here, order is the same as in CMakeLists.txt + GLOBALCMAKEARGS=( + # Optional 3rd party components + # =================================================== + -DWITH_1394=$(usex ieee1394) + # -DWITH_AVFOUNDATION=OFF # IOS + -DWITH_VTK=$(multilib_native_usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF # Video windows support + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF # Don't want this + -DWITH_GTK=$(usex gtk) + -DWITH_GTK_2_X=$(usex gtk) + -DWITH_IPP=$(multilib_native_usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_WEBP=$(usex webp) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENVX=OFF + -DWITH_OPENNI=OFF # Not packaged + -DWITH_OPENNI2=OFF # Not packaged + -DWITH_PNG=$(usex png) + -DWITH_GDCM=OFF + -DWITH_PVAPI=OFF + -DWITH_GIGEAPI=OFF + -DWITH_ARAVIS=OFF + -DWITH_QT=$(multilib_native_usex qt5 5 OFF) + -DWITH_WIN32UI=OFF # Windows only + # -DWITH_QUICKTIME=OFF + # -DWITH_QTKIT=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_PTHREADS_PF=ON + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF # Not packaged + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON # direct show supp + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF # Windows only + -DWITH_XINE=$(multilib_native_usex xine) + -DWITH_CLP=OFF + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCL_SVM=OFF + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_DIRECTX=OFF + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag + -DWITH_IPP_A=OFF + -DWITH_MATLAB=OFF + -DWITH_VA=$(usex vaapi) + -DWITH_VA_INTEL=$(usex vaapi) + -DWITH_GDAL=$(multilib_native_usex gdal) + -DWITH_GPHOTO2=$(usex gphoto2) + -DWITH_LAPACK=$(multilib_native_usex lapack) + # =================================================== + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version + # =================================================== + -DWITH_CUDA=$(multilib_native_usex cuda) + -DWITH_CUBLAS=$(multilib_native_usex cuda) + -DWITH_CUFFT=$(multilib_native_usex cuda) + -DWITH_NVCUVID=OFF +# -DWITH_NVCUVID=$(usex cuda) + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "") + # =================================================== + # OpenCV build components + # =================================================== + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -BUILD_opencv_apps= + -DBUILD_DOCS=OFF # Doesn't install anyways. + -DBUILD_EXAMPLES=$(multilib_native_usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(multilib_native_usex testprograms) + -DBUILD_WITH_DEBUG_INFO=$(usex debug) + # -DBUILD_WITH_STATIC_CRT=OFF + -DBUILD_WITH_DYNAMIC_IPP=OFF + -DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java) + # -DBUILD_ANDROID_SERVICE=OFF + -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda) + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "") + # =================================================== + # OpenCV installation options + # =================================================== + -DINSTALL_CREATE_DISTRIB=OFF + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples) + -DINSTALL_TESTS=$(multilib_native_usex testprograms) + -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples) + # -DINSTALL_ANDROID_EXAMPLES=OFF + -DINSTALL_TO_MANGLED_PATHS=OFF + # =================================================== + # OpenCV build options + # =================================================== + -DENABLE_CCACHE=OFF + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DENABLE_SOLUTION_FOLDERS=OFF + -DENABLE_PROFILING=OFF + -DENABLE_COVERAGE=OFF + -DENABLE_OMIT_FRAME_POINTER=OFF + -DENABLE_FAST_MATH=OFF + -DENABLE_SSE=OFF + -DENABLE_SSE2=OFF + -DENABLE_SSE3=OFF + -DENABLE_SSSE3=OFF + -DENABLE_SSE41=OFF + -DENABLE_SSE42=OFF + -DENABLE_POPCNT=OFF + -DENABLE_AVX=OFF + -DENABLE_AVX=OFF + -DENABLE_AVX2=OFF + -DENABLE_FMA3=OFF + -DENABLE_NEON=OFF + + -DHAVE_opencv_java=$(multilib_native_usex java YES NO) + -DENABLE_NOISY_WARNINGS=OFF + -DOPENCV_WARNINGS_ARE_ERRORS=OFF + -DENABLE_IMPL_COLLECTION=OFF + -DENABLE_INSTRUMENTATION=OFF + -DGENERATE_ABI_DESCRIPTOR=OFF + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF + # =================================================== + # things we want to be hard off or not yet figured out + # =================================================== + -DBUILD_PACKAGE=OFF + -DENABLE_PROFILING=OFF + # =================================================== + # things we want to be hard enabled not worth useflag + # =================================================== + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # =================================================== + # OpenCV Contrib Modules + # =================================================== + if use contrib; then + GLOBALCMAKEARGS+=( + -DBUILD_opencv_dnn=OFF + -DBUILD_opencv_dnns_easily_fooled=OFF + -DBUILD_opencv_xfeatures2d=$(usex contrib_xfeatures2d ON OFF) + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF) + -DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF) + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF) + ) + + if multilib_is_native_abi; then + GLOBALCMAKEARGS+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract) + ) + else + GLOBALCMAKEARGS+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON + ) + fi + fi + + # workaround for bug 413429 + tc-export CC CXX + + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} + -DPYTHON_EXECUTABLE=OFF + -DINSTALL_PYTHON_EXAMPLES=OFF + ) + + cmake-utils_src_configure +} + +python_module_compile() { + local BUILD_DIR=${orig_BUILD_DIR} + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} ) + + # Set all python variables to load the correct Gentoo paths + mycmakeargs+=( + # cheap trick: python_setup sets one of them as a symlink + # to the correct interpreter, and the other to fail-wrapper + -DPYTHON2_EXECUTABLE=$(type -P python2) + -DPYTHON3_EXECUTABLE=$(type -P python3) + -DINSTALL_PYTHON_EXAMPLES=$(usex examples) + ) + + # Regenerate cache file. Can't use rebuild_cache as it won't + # have the Gentoo specific options. + rm -rf CMakeCache.txt || die "rm failed" + cmake-utils_src_configure + cmake-utils_src_compile + cmake-utils_src_install + + # Remove compiled binary so new version compiles + # Avoid conflicts with new module builds as build system doesn't + # really support it. + rm -rf modules/python2 || die "rm failed" +} + +multilib_src_install() { + cmake-utils_src_install + + # Build and install the python modules for all targets + if multilib_is_native_abi && use python; then + local orig_BUILD_DIR=${BUILD_DIR} + python_foreach_impl python_module_compile + fi +} diff --git a/media-libs/opencv/opencv-3.3.0-r2.ebuild b/media-libs/opencv/opencv-3.3.0-r2.ebuild new file mode 100644 index 000000000000..a6a2298e02cc --- /dev/null +++ b/media-libs/opencv/opencv-3.3.0-r2.ebuild @@ -0,0 +1,361 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +PYTHON_COMPAT=( python{2_7,3_4,3_5} ) + +inherit toolchain-funcs python-r1 java-pkg-opt-2 java-ant-2 cmake-multilib + +DESCRIPTION="A collection of algorithms and sample code for various computer vision problems" +HOMEPAGE="http://opencv.org" + +SRC_URI="https://github.com/${PN}/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz + https://dev.gentoo.org/~amynka/snap/imgcodecs-${P}.tar.gz + contrib? ( https://github.com/${PN}/${PN}_contrib/archive/${PV}.tar.gz -> ${P}_contrib.tar.gz + contrib_xfeatures2d? ( https://dev.gentoo.org/~amynka/snap/vgg_boostdesc-3.2.0.tar.gz ) ) " +LICENSE="BSD" +SLOT="0/3.3" # subslot = libopencv* soname version +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~amd64-linux" +IUSE="contrib cuda debug +eigen examples ffmpeg gdal gflags glog gphoto2 gstreamer gtk ieee1394 ipp jpeg jpeg2k lapack libav opencl openexr opengl openmp pch png +python qt5 tesseract testprograms threads tiff vaapi v4l vtk webp xine contrib_cvv contrib_hdf contrib_sfm contrib_xfeatures2d" + +# OpenGL needs gtk or Qt installed to activate, otherwise build system +# will silently disable it without the user knowing, which defeats the +# purpose of the opengl use flag. +REQUIRED_USE=" + cuda? ( tesseract? ( opencl ) ) + gflags? ( contrib ) + glog? ( contrib ) + contrib_cvv? ( contrib qt5 ) + contrib_hdf? ( contrib ) + contrib_sfm? ( contrib eigen gflags glog ) + contrib_xfeatures2d? ( contrib cuda ) + java? ( python ) + opengl? ( || ( gtk qt5 ) ) + python? ( ${PYTHON_REQUIRED_USE} ) + tesseract? ( contrib )" + +# The following logic is intrinsic in the build system, but we do not enforce +# it on the useflags since this just blocks emerging pointlessly: +# gtk? ( !qt5 ) +# openmp? ( !threads ) + +RDEPEND=" + app-arch/bzip2[${MULTILIB_USEDEP}] + dev-libs/protobuf:=[${MULTILIB_USEDEP}] + sys-libs/zlib[${MULTILIB_USEDEP}] + cuda? ( dev-util/nvidia-cuda-toolkit:0= ) + contrib_hdf? ( sci-libs/hdf5 ) + ffmpeg? ( + libav? ( media-video/libav:0=[${MULTILIB_USEDEP}] ) + !libav? ( media-video/ffmpeg:0=[${MULTILIB_USEDEP}] ) + ) + gdal? ( sci-libs/gdal:= ) + gflags? ( dev-cpp/gflags[${MULTILIB_USEDEP}] ) + glog? ( dev-cpp/glog[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2[${MULTILIB_USEDEP}] ) + gstreamer? ( + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + media-libs/gst-plugins-base:1.0[${MULTILIB_USEDEP}] + ) + gtk? ( + dev-libs/glib:2[${MULTILIB_USEDEP}] + x11-libs/gtk+:2[${MULTILIB_USEDEP}] + opengl? ( x11-libs/gtkglext[${MULTILIB_USEDEP}] ) + ) + ieee1394? ( + media-libs/libdc1394[${MULTILIB_USEDEP}] + sys-libs/libraw1394[${MULTILIB_USEDEP}] + ) + ipp? ( sci-libs/ipp ) + java? ( >=virtual/jre-1.6:* ) + jpeg? ( virtual/jpeg:0[${MULTILIB_USEDEP}] ) + jpeg2k? ( media-libs/jasper:=[${MULTILIB_USEDEP}] ) + lapack? ( virtual/lapack ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + openexr? ( media-libs/openexr[${MULTILIB_USEDEP}] ) + opengl? ( + virtual/opengl[${MULTILIB_USEDEP}] + virtual/glu[${MULTILIB_USEDEP}] + ) + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) + python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) + qt5? ( + dev-qt/qtgui:5 + dev-qt/qtwidgets:5 + dev-qt/qttest:5 + dev-qt/qtconcurrent:5 + opengl? ( dev-qt/qtopengl:5 ) + ) + tesseract? ( app-text/tesseract[opencl=] ) + threads? ( dev-cpp/tbb[${MULTILIB_USEDEP}] ) + tiff? ( media-libs/tiff:0[${MULTILIB_USEDEP}] ) + v4l? ( >=media-libs/libv4l-0.8.3[${MULTILIB_USEDEP}] ) + vtk? ( sci-libs/vtk[rendering] ) + webp? ( media-libs/libwebp[${MULTILIB_USEDEP}] ) + xine? ( media-libs/xine-lib )" +DEPEND="${RDEPEND} + virtual/pkgconfig[${MULTILIB_USEDEP}] + eigen? ( dev-cpp/eigen:3 ) + java? ( >=virtual/jdk-1.6 )" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/opencv2/cvconfig.h + /usr/include/opencv2/opencv_modules.hpp + # [contrib_cvv] + /usr/include/opencv2/cvv.hpp + /usr/include/opencv2/cvv/call_meta_data.hpp + /usr/include/opencv2/cvv/cvv.hpp + /usr/include/opencv2/cvv/debug_mode.hpp + /usr/include/opencv2/cvv/dmatch.hpp + /usr/include/opencv2/cvv/filter.hpp + /usr/include/opencv2/cvv/final_show.hpp + /usr/include/opencv2/cvv/show_image.hpp + # [contrib_hdf] + /usr/include/opencv2/hdf.hpp + /usr/include/opencv2/hdf/hdf5.hpp + # [vtk] + /usr/include/opencv2/viz.hpp + /usr/include/opencv2/viz/types.hpp + /usr/include/opencv2/viz/viz3d.hpp + /usr/include/opencv2/viz/vizcore.hpp + /usr/include/opencv2/viz/widget_accessor.hpp + /usr/include/opencv2/viz/widgets.hpp +) + +PATCHES=( + "${FILESDIR}/${PN}-3.0.0-gles.patch" + "${FILESDIR}/${PN}-3.1.0-java-magic.patch" + "${FILESDIR}/${PN}-3.1.0-find-libraries-fix.patch" + "${WORKDIR}/${P}-imgcodecs-gcc.patch" # bug 627958 and https://github.com/opencv/opencv/pull/9376 +) + +pkg_pretend() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp +} + +pkg_setup() { + [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + cmake-utils_src_prepare + + # remove bundled stuff + rm -rf 3rdparty || die "Removing 3rd party components failed" + sed -e '/add_subdirectory(.*3rdparty.*)/ d' \ + -i CMakeLists.txt cmake/*cmake || die + + if use contrib && use contrib_xfeatures2d; then + cd "${WORKDIR}/${PN}_contrib-${PV}" || die + eapply "${FILESDIR}/${P}-contrib-xfeatures2d.patch" + mv "${WORKDIR}"/*.i "${WORKDIR}/${PN}_contrib-${PV}"/modules/xfeatures2d/src/ || die + fi + + java-pkg-opt-2_src_prepare + + # this really belongs in src_prepare() too + JAVA_ANT_ENCODING="iso-8859-1" + # set encoding so even this cmake build will pick it up. + export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" + java-ant-2_src_configure +} + +multilib_src_configure() { + # please dont sort here, order is the same as in CMakeLists.txt + GLOBALCMAKEARGS=( + # Optional 3rd party components + # =================================================== + -DWITH_1394=$(usex ieee1394) + # -DWITH_AVFOUNDATION=OFF # IOS + -DWITH_VTK=$(multilib_native_usex vtk) + -DWITH_EIGEN=$(usex eigen) + -DWITH_VFW=OFF # Video windows support + -DWITH_FFMPEG=$(usex ffmpeg) + -DWITH_GSTREAMER=$(usex gstreamer) + -DWITH_GSTREAMER_0_10=OFF # Don't want this + -DWITH_GTK=$(usex gtk) + -DWITH_GTK_2_X=$(usex gtk) + -DWITH_IPP=$(multilib_native_usex ipp) + -DWITH_JASPER=$(usex jpeg2k) + -DWITH_JPEG=$(usex jpeg) + -DWITH_WEBP=$(usex webp) + -DWITH_OPENEXR=$(usex openexr) + -DWITH_OPENGL=$(usex opengl) + -DWITH_OPENVX=OFF + -DWITH_OPENNI=OFF # Not packaged + -DWITH_OPENNI2=OFF # Not packaged + -DWITH_PNG=$(usex png) + -DWITH_GDCM=OFF + -DWITH_PVAPI=OFF + -DWITH_GIGEAPI=OFF + -DWITH_ARAVIS=OFF + -DWITH_QT=$(multilib_native_usex qt5 5 OFF) + -DWITH_WIN32UI=OFF # Windows only + # -DWITH_QUICKTIME=OFF + # -DWITH_QTKIT=OFF + -DWITH_TBB=$(usex threads) + -DWITH_OPENMP=$(usex openmp) + -DWITH_CSTRIPES=OFF + -DWITH_PTHREADS_PF=ON + -DWITH_TIFF=$(usex tiff) + -DWITH_UNICAP=OFF # Not packaged + -DWITH_V4L=$(usex v4l) + -DWITH_LIBV4L=$(usex v4l) + -DWITH_DSHOW=ON # direct show supp + -DWITH_MSMF=OFF + -DWITH_XIMEA=OFF # Windows only + -DWITH_XINE=$(multilib_native_usex xine) + -DWITH_CLP=OFF + -DWITH_OPENCL=$(usex opencl) + -DWITH_OPENCL_SVM=OFF + -DWITH_OPENCLAMDFFT=$(usex opencl) + -DWITH_OPENCLAMDBLAS=$(usex opencl) + -DWITH_DIRECTX=OFF + -DWITH_INTELPERC=OFF + -DWITH_JAVA=$(multilib_native_usex java) # Ant needed, no compile flag + -DWITH_IPP_A=OFF + -DWITH_MATLAB=OFF + -DWITH_VA=$(usex vaapi) + -DWITH_VA_INTEL=$(usex vaapi) + -DWITH_GDAL=$(multilib_native_usex gdal) + -DWITH_GPHOTO2=$(usex gphoto2) + -DWITH_LAPACK=$(multilib_native_usex lapack) + -DWITH_ITT=OFF # 3dparty libs itt_notify + # =================================================== + # CUDA build components: nvidia-cuda-toolkit takes care of GCC version + # =================================================== + -DWITH_CUDA=$(multilib_native_usex cuda) + -DWITH_CUBLAS=$(multilib_native_usex cuda) + -DWITH_CUFFT=$(multilib_native_usex cuda) + -DWITH_NVCUVID=OFF +# -DWITH_NVCUVID=$(usex cuda) + -DCUDA_NPP_LIBRARY_ROOT_DIR=$(usex cuda "${EPREFIX}/opt/cuda" "") + # =================================================== + # OpenCV build components + # =================================================== + -DBUILD_SHARED_LIBS=ON + -DBUILD_ANDROID_EXAMPLES=OFF + -BUILD_opencv_apps= + -DBUILD_DOCS=OFF # Doesn't install anyways. + -DBUILD_EXAMPLES=$(multilib_native_usex examples) + -DBUILD_PERF_TESTS=OFF + -DBUILD_TESTS=$(multilib_native_usex testprograms) + -DBUILD_WITH_DEBUG_INFO=$(usex debug) + # -DBUILD_WITH_STATIC_CRT=OFF + -DBUILD_WITH_DYNAMIC_IPP=OFF + -DBUILD_FAT_JAVA_LIB=$(multilib_native_usex java) + # -DBUILD_ANDROID_SERVICE=OFF + -DBUILD_CUDA_STUBS=$(multilib_native_usex cuda) + -DOPENCV_EXTRA_MODULES_PATH=$(usex contrib "${WORKDIR}/opencv_contrib-${PV}/modules" "") + # =================================================== + # OpenCV installation options + # =================================================== + -DINSTALL_CREATE_DISTRIB=OFF + -DINSTALL_C_EXAMPLES=$(multilib_native_usex examples) + -DINSTALL_TESTS=$(multilib_native_usex testprograms) + -DINSTALL_PYTHON_EXAMPLES=$(multilib_native_usex examples) + # -DINSTALL_ANDROID_EXAMPLES=OFF + -DINSTALL_TO_MANGLED_PATHS=OFF + # =================================================== + # OpenCV build options + # =================================================== + -DENABLE_CCACHE=OFF + -DENABLE_PRECOMPILED_HEADERS=$(usex pch) + -DENABLE_SOLUTION_FOLDERS=OFF + -DENABLE_PROFILING=OFF + -DENABLE_COVERAGE=OFF + + -DHAVE_opencv_java=$(multilib_native_usex java YES NO) + -DENABLE_NOISY_WARNINGS=OFF + -DOPENCV_WARNINGS_ARE_ERRORS=OFF + -DENABLE_IMPL_COLLECTION=OFF + -DENABLE_INSTRUMENTATION=OFF + -DGENERATE_ABI_DESCRIPTOR=OFF + -DDOWNLOAD_EXTERNAL_TEST_DATA=OFF + # =================================================== + # things we want to be hard off or not yet figured out + # =================================================== + -DBUILD_PACKAGE=OFF + # =================================================== + # Not building protobuf but update files bug #631418 + # =================================================== + -DBUILD_PROTOBUF=OFF + -DPROTOBUF_UPDATE_FILES=ON + # =================================================== + # things we want to be hard enabled not worth useflag + # =================================================== + -DCMAKE_SKIP_RPATH=ON + -DOPENCV_DOC_INSTALL_PATH= + ) + + # =================================================== + # OpenCV Contrib Modules + # =================================================== + if use contrib; then + GLOBALCMAKEARGS+=( + -DBUILD_opencv_dnn=OFF + -DBUILD_opencv_dnns_easily_fooled=OFF + -DBUILD_opencv_xfeatures2d=$(usex contrib_xfeatures2d ON OFF) + -DBUILD_opencv_cvv=$(usex contrib_cvv ON OFF) + -DBUILD_opencv_hdf=$(multilib_native_usex contrib_hdf ON OFF) + -DBUILD_opencv_sfm=$(usex contrib_sfm ON OFF) + ) + + if multilib_is_native_abi; then + GLOBALCMAKEARGS+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=$(usex !tesseract) + ) + else + GLOBALCMAKEARGS+=( + -DCMAKE_DISABLE_FIND_PACKAGE_Tesseract=ON + ) + fi + fi + + # workaround for bug 413429 + tc-export CC CXX + + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} + -DPYTHON_EXECUTABLE=OFF + -DINSTALL_PYTHON_EXAMPLES=OFF + ) + + cmake-utils_src_configure +} + +python_module_compile() { + local BUILD_DIR=${orig_BUILD_DIR} + local mycmakeargs=( ${GLOBALCMAKEARGS[@]} ) + + # Set all python variables to load the correct Gentoo paths + mycmakeargs+=( + # cheap trick: python_setup sets one of them as a symlink + # to the correct interpreter, and the other to fail-wrapper + -DPYTHON2_EXECUTABLE=$(type -P python2) + -DPYTHON3_EXECUTABLE=$(type -P python3) + -DINSTALL_PYTHON_EXAMPLES=$(usex examples) + ) + + # Regenerate cache file. Can't use rebuild_cache as it won't + # have the Gentoo specific options. + rm -rf CMakeCache.txt || die "rm failed" + cmake-utils_src_configure + cmake-utils_src_compile + cmake-utils_src_install + + # Remove compiled binary so new version compiles + # Avoid conflicts with new module builds as build system doesn't + # really support it. + rm -rf modules/python2 || die "rm failed" +} + +multilib_src_install() { + cmake-utils_src_install + + # Build and install the python modules for all targets + if multilib_is_native_abi && use python; then + local orig_BUILD_DIR=${BUILD_DIR} + python_foreach_impl python_module_compile + fi +} |