Where is the documentation for the CMake DCMTK_WITH options?

Compilation and installation of DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
thomb
Posts: 91
Joined: Mon, 2024-05-20, 08:10

Where is the documentation for the CMake DCMTK_WITH options?

#1 Post by thomb »

Hi All,
I'd like to setup to build version 3.6.8. The team has been using 3.5.4 for a while and I'm trying to understand what each DCMTK_WITH_* setting does and why it might be advantageous to use it.
I'm new to CMake and have limited experience with DCMTK.

Some of these options (like DCMTK_WITH_THREADS) weren't available for 3.5.4.
I think the default is to use threads now.
What are the other defaults for the DCMTK_WITH_* settings and any other settings that might be new or have changed from Off to On by default.

Thank you.

Michael Onken
DCMTK Developer
Posts: 2073
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: Where is the documentation for the CMake DCMTK_WITH options?

#2 Post by Michael Onken »

Hi,

most of them are discussed within the dcmtk/INSTALL file. This is generally a good read to understand the most important configuration options. If you have any particular questions not answered in INSTALL, let me know.

Best,
Michael

thomb
Posts: 91
Joined: Mon, 2024-05-20, 08:10

Re: Where is the documentation for the CMake DCMTK_WITH options?

#3 Post by thomb »

Thanks Michael. I have read that INSTALL file a few times. I will read it a few more.
I'll reach out if there is anything that needs further explanation.

Michael Onken
DCMTK Developer
Posts: 2073
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: Where is the documentation for the CMake DCMTK_WITH options?

#4 Post by Michael Onken »

Sometimes its just enough to hit Configure and Generate if you don't need any special features. We try to provide sane defaults...;)

thomb
Posts: 91
Joined: Mon, 2024-05-20, 08:10

Re: Where is the documentation for the CMake DCMTK_WITH options?

#5 Post by thomb »

Hi.

I'm trying to understand of variables like oficonv_SOURCE_DIR are setup during the config or generate steps.
I want a way to override those with an environment variable that can be set up each developer's machine for the root directory of the code and the root directory of the build system (output).
This would allow developers to set DCMTK_ROOT_DIRECTORY and DCMTK_BUILD_SYSTEM_DIRECTOR to match where they have cloned our internal repo of the DCM 3.6.8 code (including the output from CMake)

Thanks

Marco Eichelberg
OFFIS DICOM Team
OFFIS DICOM Team
Posts: 1507
Joined: Tue, 2004-11-02, 17:22
Location: Oldenburg, Germany
Contact:

Re: Where is the documentation for the CMake DCMTK_WITH options?

#6 Post by Marco Eichelberg »

In essence, it's cmake [options] -S <path-to-source> -B <path-to-build>. <path-to-source> should be the directory into which the developed has cloned the Git repository, <path-to-build> the directory into which the Visual Studio files will be written.

thomb
Posts: 91
Joined: Mon, 2024-05-20, 08:10

Re: Where is the documentation for the CMake DCMTK_WITH options?

#7 Post by thomb »

Thanks.
But I can't put environment variables in the source path or the build-system path, right?

I think I'm trying to do something that CMake and DCMTK setup wasn't designed to do.
I want to generate the build-system output once, commit that to the code repository, and allow anyone to build
DCMTK on any windows machine in any directory after they set some environment variables.
I can manually update the generated Visual Studio *.vcxproj.filters and *.vcxproj files (I did this with our repository for 3.5.4).
Do I need to change any Cmake related files that contain absolute paths?
Some examples are:
./dcmdata/apps/CMakeFiles/generate.stamp.depend
./dcmdata/apps/cmake_install.cmake
./dcmdata/apps/CTestTestfile.cmake
./dcmdata/CMakeFiles/generate.stamp.depend
./dcmdata/cmake_install.cmake
./dcmdata/CTestTestfile.cmake
./dcmdata/data/CMakeFiles/generate.stamp.depend
./dcmdata/data/cmake_install.cmake
./dcmdata/data/CTestTestfile.cmake

thomb
Posts: 91
Joined: Mon, 2024-05-20, 08:10

Re: Where is the documentation for the CMake DCMTK_WITH options?

#8 Post by thomb »

Also any vcxproj* files with this command.
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">setlocal
"C:\Program Files\CMake\bin\cmake.exe" -SC:/Users/user/repos/mmi-director-dcmtk-3.6.8/dcmtk-3.6.8 -BC:/Users/user/repos/mmi-director-dcmtk-3.6.8/build-system --check-stamp-list CMakeFiles/generate.stamp.list --vs-solution-file C:/Users/user/repos/mmi-director-dcmtk-3.6.8/build-system/DCMTK.sln

What is cmake.exe doing here?
I assume I need an environment variable for the path to cmake.exe so this will work on any developer's machine (regardless of if they are using it to create the build system for their machine).

Thanks again.

Michael Onken
DCMTK Developer
Posts: 2073
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: Where is the documentation for the CMake DCMTK_WITH options?

#9 Post by Michael Onken »

Sorry, no idea of the whole thing (creating .sln and just adapt environment variables) will work out in the end. At least I can say I never tried this and have no idea how to do it :)

thomb
Posts: 91
Joined: Mon, 2024-05-20, 08:10

Re: Where is the documentation for the CMake DCMTK_WITH options?

#10 Post by thomb »

Thanks. I know I'm working against common practice (or it seems that way).
I was successful with what I inherited for 3.5.4, but other things may have mapped before that or changed with 3.6.8.
I don't see cmake being run in the 3.5.4 repo I inherited.

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests