Gitlab Ci Cmake

Opus audio codec Opus is a codec for interactive speech and audio transmission over the Internet. Opus can handle a wide range of interactive audio applications, including Voice over IP, videoconferencing, in-game chat, and even remote live music performances. First be sure to `git pull origin development` into your local branch if you have made changes to your.gitlab-ci.yml file on the website. Then create a “tst” folder alongside your current “src” folder and add these two lines to your existing CMakeList.txt file in the root of our project.

This is a quick recipe for setting up CMake to use googletest in your projects. First, make a tests folder in the root of your project. Then, add add_subdirectory(tests) to your CMakeLists.txt, after you’ve finished adding the libraries in your project. Note that the way I’ve written this probably requires CMake 3.4+.

The CMakeLists.txt file in tests should look like this:

This adds the Threads::Threads target that we can link to, to enable the threading support that GTest requires. On some systems, it is important to use the -pthread flag, so this does that if necessary.

We have to add an external property, to get CMake to download and build GTest for us. We also need to get the source directory and binary directory for use in linking.

Hopefully these lines are familiar to you; they are setting up a special target that we aren’t “building”, but are using. The target libgtest is simply an interface (no building), and is dependent on gtest (That has to be built first). The link and include commands set up the dependencies so that future target_link_libraries commands only need this target, and will inherit everything else!

Gitlab Ci Cmake

This prepares CTest to handle the tests. You can either run the binaries, or use “make test” to run the tests through CTest’s runner program.

Or however you want to collect your test cases.

Here, we make the tests, doing two things. Setting up the CTest integration is the bulk of the commands above; the main command is the target_link_libraries, which should have your library target (MyLibrary in this example) and the libgtest target. That gets all the includes and links (and defs, if you have those) set on the test targets. That’s it!

Using an IDE

I’ve found this has some issues with IDE’s that support multiple build configurations. I’m looking into a better solution, but for now, these lines injected after the Get_Property call will allow you to build directly in the IDE again:

Poppler is a PDF rendering library based on the xpdf-3.0 code base.

What's with the name?


Discuss poppler on the popplermailing list, or visit the #poppler irc channel


The latest stable release is poppler-21.05.0.tar.xz,released on May 2, 2021:

Github Cmake

Gitlab Ci Cmake

The tarball has been signed (.sig file) by Albert Astals Cid CA262C6C83DE4D2FB28A332A3A6A4DB839EAA6D7.

Gitlab ci cmake exampleGitlab Ci Cmake

Besides poppler you are also going to need poppler encoding data: poppler-data-0.4.10.tar.gz, released on October 21, 2020.

Previous poppler releases are available here.


Poppler is developed using git. To clone the repository use the following command:

or browse (via cgit)(via gitlab) therepository. Please send patches via gitlab merge requests.



Poppler comes with multiple frontends (APIs): cpp, glib and qt5. Following is a list of already generated documentation. You can always generate up to date documentation from the source code.

  • cpp:
  • glib:
  • qt5:


Poppler Wiki.

Gitlab Ci Cmake Za


Check out the bugs filed against poppler and the issues found by oss-fuzz.


Use gitlab to report bugs or suggest enhancements.

If you have documents that don't render properly with poppler, pleaseopen a bug and attach the PDF file there, if possible.

Continuous Integration

Gitlab Ci Cmake Example

We run continuous integration via the gitlab CI on:

  • Debian Unstable (gcc and clang)
  • Ubuntu 16.04 (gcc)
  • Fedora (mingw and clazy)
  • android (via kdeorg/android-sdk docker)

There are a few non official CI too:

  • FreeBSD 13:
  • macOS:
  • Windows:
  • buildbot:

Packaged Versions

This is a non-complete list of packaged versions of poppler and poppler-data.