From 1d145738cc4c41b964e7ef0e492eaf11a564af6f Mon Sep 17 00:00:00 2001 From: Andreas Viborg Date: Thu, 16 Feb 2023 19:19:56 +0100 Subject: [PATCH 01/12] wip --- CMakeLists.txt | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..244e0fd --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,85 @@ +cmake_minimum_required(VERSION 3.15) +project(libvideo-scale VERSION 1.0) + +option(BUILD_SHARED_LIBS "Build using shared libraries" ON) + +# video-scale +set(LIB_SOURCES + src/vscale.c +) + +add_library(video-scale ${LIB_SOURCES}) + +target_include_directories(video-scale PUBLIC + $ + $ +) + +target_compile_definitions(video-scale PRIVATE "VSCALE_API_EXPORTS") +target_compile_options(video-scale PRIVATE "-fvisibility=hidden") +target_compile_options(video-scale PRIVATE "-std=gnu99") + +target_link_libraries(video-scale + pomp + ulog + media-buffers + video-defs + video-scale-core + video-scale-libyuv +) + +# video-scale-core +set(LIB_SOURCES + core/src/vscale_core.c + core/src/vscale_enums.c +) + +add_library(video-scale-core ${LIB_SOURCES}) + +target_include_directories(video-scale-core PUBLIC + $ + $ +) + +target_compile_definitions(video-scale-core PRIVATE "VSCALE_API_EXPORTS") +target_compile_options(video-scale-core PRIVATE "-fvisibility=hidden") +target_compile_options(video-scale-core PRIVATE "-std=gnu99") + +target_link_libraries(video-scale-core + futils + media-buffers + ulog + video-defs +) + +# video-scale-libyuv +set(LIB_SOURCES + libyuv/src/vscale_libyuv.c +) + +add_library(video-scale-libyuv ${LIB_SOURCES}) + +target_include_directories(video-scale-libyuv PUBLIC + $ + $ +) + +target_compile_definitions(video-scale-libyuv PRIVATE "VSCALE_API_EXPORTS") +target_compile_options(video-scale-libyuv PRIVATE "-fvisibility=hidden") +target_compile_options(video-scale-libyuv PRIVATE "-std=gnu11") + +find_package(libyuv CONFIG REQUIRED) +target_link_libraries(video-scale-libyuv yuv) + +target_link_libraries(video-scale-libyuv + futils + media-buffers + media-buffers-memory + media-buffers-memory-generic + pomp + ulog + video-defs + video-metadata + video-scale-core + yuv +) \ No newline at end of file From 99e714465f660f0da08567d4ae5abbc753cb1785 Mon Sep 17 00:00:00 2001 From: Andreas Viborg Date: Thu, 16 Feb 2023 21:04:30 +0100 Subject: [PATCH 02/12] wip --- CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 244e0fd..4470900 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,8 +68,6 @@ target_compile_definitions(video-scale-libyuv PRIVATE "VSCALE_API_EXPORTS") target_compile_options(video-scale-libyuv PRIVATE "-fvisibility=hidden") target_compile_options(video-scale-libyuv PRIVATE "-std=gnu11") -find_package(libyuv CONFIG REQUIRED) -target_link_libraries(video-scale-libyuv yuv) target_link_libraries(video-scale-libyuv futils From fa7ddd007618ac0e3c4d0c8b58852e84ca17ed02 Mon Sep 17 00:00:00 2001 From: Andreas Viborg Date: Sun, 26 Feb 2023 12:48:28 +0100 Subject: [PATCH 03/12] wip --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4470900..57008a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,10 @@ set(LIB_SOURCES add_library(video-scale ${LIB_SOURCES}) +set_target_properties(video-scale PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} +) + target_include_directories(video-scale PUBLIC $ $ @@ -35,6 +39,9 @@ set(LIB_SOURCES ) add_library(video-scale-core ${LIB_SOURCES}) +set_target_properties(video-scale-core PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} +) target_include_directories(video-scale-core PUBLIC $ @@ -58,6 +65,9 @@ set(LIB_SOURCES ) add_library(video-scale-libyuv ${LIB_SOURCES}) +set_target_properties(video-scale-libyuv PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} +) target_include_directories(video-scale-libyuv PUBLIC $ From ba8f028702e8259c2c43107160bee6c1ee3f042c Mon Sep 17 00:00:00 2001 From: Andreas Viborg Date: Sun, 26 Feb 2023 20:41:48 +0100 Subject: [PATCH 04/12] wip --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 57008a2..da752db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -64,7 +64,7 @@ set(LIB_SOURCES libyuv/src/vscale_libyuv.c ) -add_library(video-scale-libyuv ${LIB_SOURCES}) +add_library(video-scale-libyuv STATIC ${LIB_SOURCES}) set_target_properties(video-scale-libyuv PROPERTIES POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} ) From a5feae269a7ff2502dab0a0497427e00c5855424 Mon Sep 17 00:00:00 2001 From: Oscar Sjoberg Date: Tue, 28 Feb 2023 10:05:37 +0100 Subject: [PATCH 05/12] updating the local CMakeLists.txt file --- CMakeLists.txt | 65 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4470900..e95839b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,75 +1,80 @@ cmake_minimum_required(VERSION 3.15) -project(libvideo-scale VERSION 1.0) +project(video-scale VERSION 1.0) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) -# video-scale +# ${PROJECT_NAME} set(LIB_SOURCES src/vscale.c ) -add_library(video-scale ${LIB_SOURCES}) +add_library(${PROJECT_NAME} ${LIB_SOURCES}) -target_include_directories(video-scale PUBLIC +target_include_directories(${PROJECT_NAME} PUBLIC $ $ ) -target_compile_definitions(video-scale PRIVATE "VSCALE_API_EXPORTS") -target_compile_options(video-scale PRIVATE "-fvisibility=hidden") -target_compile_options(video-scale PRIVATE "-std=gnu99") +target_compile_definitions(${PROJECT_NAME} PRIVATE "VSCALE_API_EXPORTS") +target_compile_options(${PROJECT_NAME} PRIVATE "-fvisibility=hidden") +target_compile_options(${PROJECT_NAME} PRIVATE "-std=gnu99") -target_link_libraries(video-scale +target_link_libraries(${PROJECT_NAME} pomp ulog media-buffers video-defs - video-scale-core - video-scale-libyuv + ${PROJECT_NAME}-core + ${PROJECT_NAME}-libyuv ) -# video-scale-core +# ${PROJECT_NAME}-core set(LIB_SOURCES core/src/vscale_core.c core/src/vscale_enums.c ) -add_library(video-scale-core ${LIB_SOURCES}) +add_library(${PROJECT_NAME}-core ${LIB_SOURCES}) -target_include_directories(video-scale-core PUBLIC +target_include_directories(${PROJECT_NAME}-core PUBLIC $ $ ) -target_compile_definitions(video-scale-core PRIVATE "VSCALE_API_EXPORTS") -target_compile_options(video-scale-core PRIVATE "-fvisibility=hidden") -target_compile_options(video-scale-core PRIVATE "-std=gnu99") +target_compile_definitions(${PROJECT_NAME}-core PRIVATE "VSCALE_API_EXPORTS") +target_compile_options(${PROJECT_NAME}-core PRIVATE "-fvisibility=hidden") +target_compile_options(${PROJECT_NAME}-core PRIVATE "-std=gnu99") -target_link_libraries(video-scale-core +target_link_libraries(${PROJECT_NAME}-core futils media-buffers ulog video-defs ) -# video-scale-libyuv +# ${PROJECT_NAME}-libyuv set(LIB_SOURCES libyuv/src/vscale_libyuv.c ) -add_library(video-scale-libyuv ${LIB_SOURCES}) +add_library(${PROJECT_NAME}-libyuv ${LIB_SOURCES}) -target_include_directories(video-scale-libyuv PUBLIC +target_include_directories(${PROJECT_NAME}-libyuv PUBLIC $ $ ) -target_compile_definitions(video-scale-libyuv PRIVATE "VSCALE_API_EXPORTS") -target_compile_options(video-scale-libyuv PRIVATE "-fvisibility=hidden") -target_compile_options(video-scale-libyuv PRIVATE "-std=gnu11") +# state that libpomp need PIC when the default is shared libraries +set_target_properties(${PROJECT_NAME}-libyuv PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} +) + +target_compile_definitions(${PROJECT_NAME}-libyuv PRIVATE "VSCALE_API_EXPORTS") +target_compile_options(${PROJECT_NAME}-libyuv PRIVATE "-fvisibility=hidden") +target_compile_options(${PROJECT_NAME}-libyuv PRIVATE "-std=gnu11") -target_link_libraries(video-scale-libyuv +target_link_libraries(${PROJECT_NAME}-libyuv futils media-buffers media-buffers-memory @@ -78,6 +83,14 @@ target_link_libraries(video-scale-libyuv ulog video-defs video-metadata - video-scale-core + ${PROJECT_NAME}-core yuv -) \ No newline at end of file +) + +install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-targets + PUBLIC_HEADER DESTINATION include + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) From 7845305c35a9f68dcf963924aae6c76a7c02f8c7 Mon Sep 17 00:00:00 2001 From: Oscar Sjoberg Date: Wed, 1 Mar 2023 17:33:40 +0100 Subject: [PATCH 06/12] able to do correct install --- CMakeLists.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e95839b..788c813 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,13 @@ project(video-scale VERSION 1.0) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) +# checks if set up rpath exists for install +if(COMMAND set_up_rpath) + set_up_rpath() +else() + message("Set up rpath not defined!") +endif() + # ${PROJECT_NAME} set(LIB_SOURCES src/vscale.c @@ -20,8 +27,10 @@ target_compile_options(${PROJECT_NAME} PRIVATE "-fvisibility=hidden") target_compile_options(${PROJECT_NAME} PRIVATE "-std=gnu99") target_link_libraries(${PROJECT_NAME} + PRIVATE pomp ulog + futils media-buffers video-defs ${PROJECT_NAME}-core @@ -46,6 +55,8 @@ target_compile_options(${PROJECT_NAME}-core PRIVATE "-fvisibility=hidden") target_compile_options(${PROJECT_NAME}-core PRIVATE "-std=gnu99") target_link_libraries(${PROJECT_NAME}-core + PRIVATE + pomp futils media-buffers ulog @@ -75,6 +86,7 @@ target_compile_options(${PROJECT_NAME}-libyuv PRIVATE "-std=gnu11") target_link_libraries(${PROJECT_NAME}-libyuv + PRIVATE futils media-buffers media-buffers-memory @@ -94,3 +106,19 @@ install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION lib RUNTIME DESTINATION bin ) + +install(TARGETS ${PROJECT_NAME}-core + EXPORT ${PROJECT_NAME}-core-targets + PUBLIC_HEADER DESTINATION include + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) + +install(TARGETS ${PROJECT_NAME}-libyuv + EXPORT ${PROJECT_NAME}-libyuv-targets + PUBLIC_HEADER DESTINATION include + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin +) From 6865828ec258860e43e02bc2ebd800292098b6db Mon Sep 17 00:00:00 2001 From: Oscar Sjoberg Date: Wed, 1 Mar 2023 17:34:51 +0100 Subject: [PATCH 07/12] wip From da515b14f1fc4e3d1bcdaf1255f866bea6afa36a Mon Sep 17 00:00:00 2001 From: Andreas Viborg Date: Thu, 2 Mar 2023 08:14:09 +0100 Subject: [PATCH 08/12] wip --- CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index da752db..638102d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,10 +53,12 @@ target_compile_options(video-scale-core PRIVATE "-fvisibility=hidden") target_compile_options(video-scale-core PRIVATE "-std=gnu99") target_link_libraries(video-scale-core + pomp futils media-buffers ulog video-defs + video-metadata ) # video-scale-libyuv From 60ce47ddb98b9072788dfbaa19d33ffc78410674 Mon Sep 17 00:00:00 2001 From: Oscar Sjoberg Date: Thu, 2 Mar 2023 16:05:32 +0100 Subject: [PATCH 09/12] correcting cmake --- CMakeLists.txt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9188868..0883d05 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,13 +3,6 @@ project(video-scale VERSION 1.0) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) -# checks if set up rpath exists for install -if(COMMAND set_up_rpath) - set_up_rpath() -else() - message("Set up rpath not defined!") -endif() - # ${PROJECT_NAME} set(LIB_SOURCES src/vscale.c @@ -17,6 +10,13 @@ set(LIB_SOURCES add_library(${PROJECT_NAME} ${LIB_SOURCES}) +# checks if set up rpath exists for install +if(COMMAND set_up_rpath) + set_up_rpath() +else() + message("Set up rpath not defined!") +endif() + target_include_directories(${PROJECT_NAME} PUBLIC $ $ From 2e307f688df947fceeb08467d204a149f9d032fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Sj=C3=B6berg?= Date: Fri, 3 Mar 2023 11:22:43 +0100 Subject: [PATCH 10/12] pulling correct dll when installing windows From 8635ee117cbf1b745b534fce56cfa3f635fc8682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oscar=20Sj=C3=B6berg?= Date: Fri, 3 Mar 2023 11:59:55 +0100 Subject: [PATCH 11/12] pulling correct dll when installing windows From 5cd7dbc24027527138a986d92a5c72b979e734ef Mon Sep 17 00:00:00 2001 From: Andreas Viborg Date: Tue, 14 Mar 2023 09:15:03 +0100 Subject: [PATCH 12/12] use shared lib --- CMakeLists.txt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0883d05..f606fca 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,10 @@ set(LIB_SOURCES src/vscale.c ) -add_library(${PROJECT_NAME} ${LIB_SOURCES}) +add_library(${PROJECT_NAME} SHARED ${LIB_SOURCES}) +set_target_properties(${PROJECT_NAME} PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} +) # checks if set up rpath exists for install if(COMMAND set_up_rpath) @@ -43,7 +46,10 @@ set(LIB_SOURCES core/src/vscale_enums.c ) -add_library(${PROJECT_NAME}-core ${LIB_SOURCES}) +add_library(${PROJECT_NAME}-core SHARED ${LIB_SOURCES}) +set_target_properties(${PROJECT_NAME}-core PROPERTIES + POSITION_INDEPENDENT_CODE ${BUILD_SHARED_LIBS} +) target_include_directories(${PROJECT_NAME}-core PUBLIC $ @@ -69,7 +75,7 @@ set(LIB_SOURCES libyuv/src/vscale_libyuv.c ) -add_library(${PROJECT_NAME}-libyuv ${LIB_SOURCES}) +add_library(${PROJECT_NAME}-libyuv SHARED ${LIB_SOURCES}) target_include_directories(${PROJECT_NAME}-libyuv PUBLIC $ @@ -97,7 +103,7 @@ target_link_libraries(${PROJECT_NAME}-libyuv video-defs video-metadata ${PROJECT_NAME}-core - yuv + yuv_shared ) install(TARGETS ${PROJECT_NAME}