====== Writing your own plugins, CLI and Netbeans Setup (Windows) ====== You dont need to compile avidemux yourself to write your own plugins.\\ What you need is : * Avidemux installed on your system * SDK component activated * CMake > 3.x and mingw64-32 or 64 installed [[https://cmake.org/download/|CMake]] * Msys2 installed [[https://sourceforge.net/p/msys2/wiki/MSYS2%20installation/|MSYS]] * Mingw64 installed [[http://mingw-w64.org/doku.php/download/mingw-builds|MinGW64]] * A demo/sample video filter, available here {{ :build:videofilterdemo_2.7.zip |}} == SDK === Make sure you have selected the SDK component during install {{:build:sdk1r.png?200|}} == Msys2 and Mingw64 setup === {{:build:mingw64_setup.png?200|}} It is a good idea to use a short path, i.e. c:\MingW64 and c:\msys64 Make sure you have them both in your path (i.e. c:\Mingw64\mingw64\bin and c:\msys64\usr\bin) == Cmake == You will need to install cmake version 3.x\\ __Make sure the cmake "bin" folder is in your path __\\ ---- ====== Cli : Compile the sample using MSYS2/MinGW ====== It is best to start here to make sure you have a working environment Start a MSYS2 shell, go where you unzipped the demo code (i.e. c:\tmp\videoFilterDemo for example )\\ Create a build folder mkdir build && cd build then generate the makefile cmake -G "MSYS Makefiles" -DCMAKE_MAKE_PROGRAM=mingw32-make -DCMAKE_INSTALL_PREFIX="c:\Program Files\Avidemux 2.6 - 64 bits" .. __The CMAKE_INSTALL_PREFIX should point to the place where avidemux is__ Look for error, it should go without problem.\\ make Upon success, copy the dll in c:\Program Files\Avidemux 2.6 - 64 bits\plugins\videoFilters\ \\ Start avidemux and you should see a logo_sample filter in the menu list **Important/Common problem** ---- If the C++ library used by mingw is more recent than the one used by avidemux itself you'll run into two problem : * If you have error undefined symbol _imp_xxxxstdcxx11xxxxbasic_stringxxx when compiling , add one line at the very top of CMakeLists.txt ADD_DEFINITIONS(-D_GLIBCXX_USE_CXX11_ABI=0) * If you have error at startup "Cannot locate xyz in libsdtc+++", Overwrite the libstdc++-6.dll in the avidemux folder with the one from mingw, e.g. c:\Mingw64\mingw64\bin\libstdc++-6.dll Do the fixes above, erase the build folder (build/*) and do it all over again (it takes 5 sec) ---- ====== Using Netbeans ====== You'll need the same requirement as above (i.e. cmake, msys,...)\\ You *MUST* add msys make, mingw make will not work with netbeans\\ Open a msys2 shell, and enter\\ pacman -S make == Configure Netbeans == There are two parts : * Configure the toolchain * Configure the project The toolchain should be configured as follow :\\ {{:build:netbeans_toolchain.png?200|Toolchain}}\\ The important part is to select the make from msys64/usr/bin Everything is coming from msys, the screenshot is a bit old Last step is to setup the project :\\ {{:build:netbeans_project1.png?200|Step 1}} \\ {{:build:nb_2.png?200| Step2}} \\ {{:build:nb_5.png?200|Step 3}} \\ The important part are : * At step2 select custom * At step3, add \\ -G "MSYS Makefiles" -DCMAKE_INSTALL_PREFIX="c:/Program Files/Avidemux 2.6 - 64 bits"" Note that the path separator are "/" and not "\"! {{:build:sdk_netbeans_cmake_option.png?200|}} You can build the sample now. In case you made a mistake, dont forget to delete the CMakeCache.txt file before retrying