{"id":22884841,"url":"https://github.com/bensouchet/compile-tvpaint-plugin","last_synced_at":"2026-04-29T18:32:08.874Z","repository":{"id":290894098,"uuid":"902314943","full_name":"BenSouchet/compile-tvpaint-plugin","owner":"BenSouchet","description":"Tutorial: How to compile a plugin for TV Paint","archived":false,"fork":false,"pushed_at":"2025-04-18T14:42:36.000Z","size":3395,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-03T02:22:15.368Z","etag":null,"topics":["cmake","dll","macos","plugin","tv-paint","tvpaint","tvpaint-animation","windows"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BenSouchet.png","metadata":{},"created_at":"2024-12-12T10:26:18.000Z","updated_at":"2026-01-11T11:55:04.000Z","dependencies_parsed_at":null,"dependency_job_id":"fac9c6ff-b633-488c-8838-53cadc72ba9c","html_url":"https://github.com/BenSouchet/compile-tvpaint-plugin","commit_stats":null,"previous_names":["bensouchet/compile-tvpaint-plugin"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BenSouchet/compile-tvpaint-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenSouchet%2Fcompile-tvpaint-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenSouchet%2Fcompile-tvpaint-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenSouchet%2Fcompile-tvpaint-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenSouchet%2Fcompile-tvpaint-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BenSouchet","download_url":"https://codeload.github.com/BenSouchet/compile-tvpaint-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BenSouchet%2Fcompile-tvpaint-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32439175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T18:12:22.909Z","status":"ssl_error","status_checked_at":"2026-04-29T18:11:33.322Z","response_time":110,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cmake","dll","macos","plugin","tv-paint","tvpaint","tvpaint-animation","windows"],"created_at":"2024-12-13T19:28:59.028Z","updated_at":"2026-04-29T18:32:08.870Z","avatar_url":"https://github.com/BenSouchet.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# How to Compile a TV Paint plugin\n\n\u003cbr/\u003e\n\nDiscover the process to compile a plugin for TV Paint. This tutorial is for Windows. **BUT** in the SDK archive there is the necessary files for **macOS**, send me an email if you need the TV Paint SDK.\n\u003cbr/\u003e\n\n### IMPORTANT: Due to internal changes in the GUI of TV Paint 12.0 and newer, the SDK doesn't work properly anymore, no plugin can be used 😞\n\n[See this forum thread to get more info](http://tvpaint.net/forum/viewtopic.php?t=16705\u0026sid=be17218e1d2e16d348d2d82ad235eddd)\n\n\u003cbr/\u003e\n\nBut if you are here to build a plugin to TV Paint (up to version 11.7), **EVEN if you cannot buy new licenses for TV Paint 11 / 11.5 / 11.7, yes this is bad...** \n\nFor this you will need:\n- Lot of energy.\n- Love from your beloved one, your family, or your close friends.\n- A TV Paint plugin source code (CPP + CMakeLists.txt).\n- Time, you always need time.\n\n\n## Step 1: Install the Microsoft Visual C++ (MSVC) compiler toolset.\n\nIf you have a recent version of Visual Studio, open the Visual Studio Installer from the Windows Start menu and verify that the C++ workload is checked. If it's not installed, then check the box and select the Modify button in the installer.\n\nYou can also install the Desktop development with C++ workload without a full Visual Studio IDE installation. From the Visual Studio Downloads page, scroll down until you see Tools for Visual Studio under the All Downloads section and select the download for Build Tools for Visual Studio 2022.\n\n![Build Tools for Visual Studio download](https://github.com/user-attachments/assets/817b7f57-5263-4bbf-a8f6-4cf35567c192)\n\n\nThis will launch the Visual Studio Installer, which will bring up a dialog showing the available Visual Studio Build Tools workloads. Check the Desktop development with C++ workload and select Install.\n\n![Cpp build tools workload](https://github.com/user-attachments/assets/2febd320-0a51-4241-b5d4-63ba771ad6cc)\n\n\u003e Note: You can use the C++ toolset from Visual Studio Build Tools along with Visual Studio Code to compile, build, and verify any C++ codebase as long as you also have a valid Visual Studio license (either Community, Pro, or Enterprise) that you are actively using to develop that C++ codebase.\n\n### Check your Microsoft Visual C++ installation\nTo use MSVC from a command line or VS Code, you must run from a Developer Command Prompt for Visual Studio. An ordinary shell such as PowerShell, Bash, or the Windows command prompt does not have the necessary path environment variables set.\n\nTo open the Developer Command Prompt for VS, start typing 'developer' in the Windows Start menu, and you should see it appear in the list of suggestions. The exact name depends on which version of Visual Studio or the Visual Studio Build Tools you have installed. Select the item to open the prompt.\n\n![Developer Command Prompt](https://github.com/user-attachments/assets/17d9ee37-c4d9-40c4-8808-bbd690d13d69)\n\nYou can test that you have the C++ compiler, cl.exe, installed correctly by typing 'cl' and you should see a copyright message with the version and basic usage description.\n\n![Checking cl.exe installation](https://github.com/user-attachments/assets/a02edfbe-89bf-4e6b-a23e-8031016be0a5)\n\n## Step 2: (Optional) Install Boost C++\n\nIf you need boost in your plugin (like us with [QuadPype](https://github.com/quadproduction/quadpype))\n\n1. Go to the [Boost Downloads page](https://www.boost.org/users/download/) and download the latest Boost source `.zip` file or `.tar.gz` file.\n2. Extract the archive to a directory, e.g., `C:\\Boost`.\n3. Open a **Developer PowerShell for VS** console and navigate to the Boost directory, e.g.:\n```cmd\ncd C:\\Boost\n```\n4. Run the `bootstrap.bat` script to set up the build system:\n```cmd\n.\\bootstrap.bat\n```\n5. Build Boost using the b2 tool. Specify the desired toolchain (e.g., msvc) and install path:\n```cmd\n.\\b2 install --toolset=msvc --address-model=64 --prefix=C:\\Boost\\Boost_Install\n```\n\n`--address-model=64`: Specifies a 64-bit build.  \n`--prefix=C:\\Boost\\Boost_Install`: Directory where Boost will be installed.\n\n###  Configure Environment Variable\n\nOpen your user environment variables window\n\n![Screenshot 2024-12-11 181900](https://github.com/user-attachments/assets/3a2359fe-c7bc-433c-9d8d-9aa994806199)\n\n\nAnd add a new environment variable:\n\n`BOOST_ROOT` : `C:\\Boost\\Boost_Install`\n\n![Screenshot 2024-12-11 182148](https://github.com/user-attachments/assets/a8d793a6-ff75-4e2b-b430-9cce9684f177)\n\n## Step 4: (Optional) OpenSSL\nIf you need openSSL for your compilation you should use the version from [Shining Light Productions](https://slproweb.com/products/Win32OpenSSL.htm).\nYes the website seems to come from the 90s and have stay in it, it's true, BUT it's the easiest way without building manually OpenSSL to get the correct LIB and HEADERS files.\n\n1. Go to [this page](https://slproweb.com/products/Win32OpenSSL.html) and downlaod the correct MSI installed for your platform (x64 or x86).\n2. Install it but check the option to install the lib data in the OpenSSL install folder not copy them to the Windows directory.\n3. All good you have the files you need.\n\n## Step 3: Your Others Dependencies\n\nBased on your code and the `CMakeLists.txt` you have (should have) you will for sure need other packages.\n\n## Step 4: The official TV Paint SDK\n\nYeah no easy to find (or kind of impossible), but we are kind and we could provide it (send me an email).\n\nWhen you have it you need to add it to you CMakeLists by adding the `TVPAINT_SDK_INCLUDE` path to the `include_directories`.\n\nAnd by adding the `\"${TVPAINT_SDK_LIB}/dllx.c\"` as the last element in the `add_library` (used to build your dll) in your CMakeLists.\n\n## Step 5: The Building Phase\n\nHere we go!\n\n1. First, update your `CMakeLists.txt` to point to the correct folders you retrieved / downloaded/ installed.\n2. Now a **Developer Command Prompt for VS** in admin (right click \u003e Run as administrator), navigate to the location where you `CMakeLists.txt` is, and then run:\n\n![Screenshot 2024-12-11 192805](https://github.com/user-attachments/assets/e061ef36-4717-4526-9c99-1d58842e71bb)\n\n```cmd\ncmake .\n```\n\nFor `x86` (x32) build the command need to be:\n```\ncmake -G \"Visual Studio 17 2022\" -A Win32 .\n```\n\n3. Check the logs, fix the issues (you will probably have some the first time, or you are just too good and you can take an ice cream, you deserve it!)\n4. Last but not least, the true generation of your TV Paint dll plugin, run the command:\n```cmd\nmsbuild NAME_OF_YOU_PROJECT.sln\n```\n\nINFO: This `.sln` file as heen generated by the previous `cmake .` command, the `NAME_OF_YOU_PROJECT` is your project name defined in your `CMakeLists.txt` with the line:\n```\nproject(NAME_OF_YOU_PROJECT C CXX)\n```\n\nIf everything works, wow, that was a good day! If not, hum sorry you will need more debug, but I'm sure you will succeed. \n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbensouchet%2Fcompile-tvpaint-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbensouchet%2Fcompile-tvpaint-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbensouchet%2Fcompile-tvpaint-plugin/lists"}