diff --git a/CMakeLists.txt b/CMakeLists.txt
index c495fb52ccd14644a1aa52d76400943b57f58f24..05ebd0b10c088b14bce991bb30aaf9e1d4cc9c61 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -331,15 +331,9 @@ add_definitions(-DHAVE_NETINET_IN_H)
 #########################
 ##### E2 AGENT
 #########################
-#add_boolean_option() does not work -- why?
 set(E2_AGENT "OFF" CACHE STRING "O-RAN-compliant E2 Agent")
 set_property(CACHE E2_AGENT PROPERTY STRINGS "ON" "OFF")
 
-if(E2_AGENT)
-  set(E2AP_DIR ${OPENAIR2_DIR}/E2AP)
-  add_subdirectory ("${E2AP_DIR}")
-endif()
-
 ##################################################
 # ASN.1 grammar C code generation & dependencies #
 ##################################################
diff --git a/openair2/CMakeLists.txt b/openair2/CMakeLists.txt
index 563d343420d60893c2d6089e97d58bb7074a4acf..117d18412b82e92f9f7982669b16689bb43487d4 100644
--- a/openair2/CMakeLists.txt
+++ b/openair2/CMakeLists.txt
@@ -1,4 +1,7 @@
 add_subdirectory(E1AP)
+if(E2_AGENT)
+  add_subdirectory(E2AP)
+endif()
 add_subdirectory(F1AP)
 add_subdirectory(M2AP)
 add_subdirectory(X2AP)