diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
index e38b2a77c1ba63aea6f5ded4b6cdd353aa92a2d3..71571f3f79b2552529a147f7779ed43af2b7ba50 100644
--- a/src/tools/CMakeLists.txt
+++ b/src/tools/CMakeLists.txt
@@ -10,25 +10,34 @@ find_package( DD4hep REQUIRED COMPONENTS DDCore DDG4 )
 find_package(ROOT REQUIRED COMPONENTS Geom GenVector MathCore)
 include(${ROOT_USE_FILE})
 
-set(exe_name npdet_to_step)
 
+set(exe_name npdet_fields)
 add_executable(${exe_name} src/${exe_name}.cxx)
-
 target_include_directories(${exe_name} PUBLIC
-    PRIVATE include
-    )
-
+  PRIVATE include )
 target_compile_features(${exe_name}
+  PUBLIC cxx_auto_type
+  PUBLIC cxx_trailing_return_types
+  PRIVATE cxx_variadic_templates )
+target_link_libraries(${exe_name} PUBLIC DDCore DDG4 ROOT::Core ROOT::Hist ROOT::GenVector ROOT::Gpad)
+install(TARGETS ${exe_name}
+  EXPORT NPDetTargets
+  RUNTIME DESTINATION bin )
+
+
+# npdet_to_step needs ROOT's GeoCad library
+if(TARGET ROOT::GeoCad)
+  set(exe_name npdet_to_step)
+  add_executable(${exe_name} src/${exe_name}.cxx)
+  target_include_directories(${exe_name} PUBLIC
+    PRIVATE include )
+  target_compile_features(${exe_name}
     PUBLIC cxx_auto_type
     PUBLIC cxx_trailing_return_types
-    PRIVATE cxx_variadic_templates
-    )
-
+    PRIVATE cxx_variadic_templates )
   target_link_libraries(${exe_name} PUBLIC DDCore DDG4 ROOT::Core ROOT::Hist ROOT::GenVector ROOT::Gpad ROOT::GeoCad)
-
-install(TARGETS ${exe_name}
+  install(TARGETS ${exe_name}
     EXPORT NPDetTargets
-    RUNTIME DESTINATION bin
-    )
-
+    RUNTIME DESTINATION bin )
+endif(TARGET ROOT::GeoCad)
 
diff --git a/src/tools/src/npdet_to_step.cxx b/src/tools/src/npdet_to_step.cxx
index faa1cd5a915969a22a2609fb5dffa06c2773086f..09ce8865696b577dd2984797964d630644436206 100644
--- a/src/tools/src/npdet_to_step.cxx
+++ b/src/tools/src/npdet_to_step.cxx
@@ -161,9 +161,8 @@ int main (int argc, char *argv[]) {
   detector.fromCompact(s.infile);
 
   TGeoToStep * mygeom= new TGeoToStep( &(detector.manager()) );
-  //mygeom->CreateGeometry();
-  detector.manager().Export("geometry.gdml");
-
+  mygeom->CreateGeometry();
+  //detector.manager().Export("geometry.gdml");
   std::cout << "saved as geometry.stp\n";
   return 0;
 }