Separating libosmogsm from the rest
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ca71fff..f032206 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -139,6 +139,7 @@
 find_package(Libosmocore)
 find_package(Libosmocodec)
 find_package(Libosmocoding)
+find_package(Libosmogsm)
 
 if(NOT PKG_CONFIG_FOUND)
     message(FATAL_ERROR "pkg-config is required to compile gr-gsm")
diff --git a/cmake/Modules/FindLibosmocore.cmake b/cmake/Modules/FindLibosmocore.cmake
index 9e4f3c4..8157910 100644
--- a/cmake/Modules/FindLibosmocore.cmake
+++ b/cmake/Modules/FindLibosmocore.cmake
@@ -1,7 +1,6 @@
 #find_package(PkgConfig)
 INCLUDE(FindPkgConfig)
 pkg_check_modules(PC_libosmocore libosmocore)
-pkg_check_modules(PC_libosmogsm libosmogsm)
 set(LIBOSMOCORE_DEFINITIONS ${PC_LIBOSMOCORE_CFLAGS_OTHER})
 
 find_path(
@@ -25,18 +24,8 @@
                 /usr/lib
 )
 
-find_library(
-        LIBOSMOCORE_GSM_LIBRARY
-        NAMES   libosmogsm osmogsm
-        HINTS   ${PC_libosmocore_LIBDIR}
-                ${PC_libosmocore_LIBRARY_DIRS}
-                ${CMAKE_INSTALL_PREFIX}/lib/
-                ${CMAKE_INSTALL_PREFIX}/lib64/
-        PATHS   /usr/local/lib
-                /usr/lib
-)
 
-set(LIBOSMOCORE_LIBRARIES ${LIBOSMOCORE_LIBRARY} ${LIBOSMOCORE_GSM_LIBRARY})
+set(LIBOSMOCORE_LIBRARIES ${LIBOSMOCORE_LIBRARY})
 set(LIBOSMOCORE_INCLUDE_DIRS ${LIBOSMOCORE_INCLUDE_DIR})
 
 include(FindPackageHandleStandardArgs)
diff --git a/cmake/Modules/FindLibosmogsm.cmake b/cmake/Modules/FindLibosmogsm.cmake
new file mode 100644
index 0000000..01985f4
--- /dev/null
+++ b/cmake/Modules/FindLibosmogsm.cmake
@@ -0,0 +1,32 @@
+INCLUDE(FindPkgConfig)
+pkg_check_modules(PC_libosmogsm libosmogsm)
+set(LIBOSMOGSM_DEFINITIONS ${PC_LIBOSMOGSM_CFLAGS_OTHER})
+
+find_path(
+        LIBOSMOGSM_INCLUDE_DIR
+        NAMES   osmocom/gsm/gsm_utils.h
+        HINTS   ${PC_libosmogsm_INCLUDEDIR}
+                ${PC_libosmogsm_INCLUDE_DIRS}
+                ${CMAKE_INSTALL_PREFIX}/include
+        PATHS   /usr/local/include
+                /usr/include
+)
+
+find_library(
+        LIBOSMOGSM_LIBRARY
+        NAMES   libosmogsm osmogsm
+        HINTS   ${PC_libosmogsm_LIBDIR}
+                ${PC_libosmogsm_LIBRARY_DIRS}
+                ${CMAKE_INSTALL_PREFIX}/lib/
+                ${CMAKE_INSTALL_PREFIX}/lib64/
+        PATHS   /usr/local/lib
+                /usr/lib
+)
+
+
+set(LIBOSMOGSM_LIBRARIES ${LIBOSMOGSM_LIBRARY})
+set(LIBOSMOGSM_INCLUDE_DIRS ${LIBOSMOGSM_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(libosmogsm  DEFAULT_MSG LIBOSMOGSM_LIBRARY LIBOSMOGSM_INCLUDE_DIR)
+mark_as_advanced(LIBOSMOGSM_INCLUDE_DIR LIBOSMOGSM_LIBRARY )
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 518edc4..5fa9da4 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -88,15 +88,13 @@
     list (APPEND grgsm_link_libraries ws2_32)
 endif()
 
-if(LIBOSMOCORE_FOUND AND LIBOSMOCODEC_FOUND)
-    list (APPEND grgsm_link_libraries ${LIBOSMOCORE_LIBRARIES} ${LIBOSMOCODEC_LIBRARIES})
+if(LIBOSMOCORE_FOUND AND LIBOSMOCODEC_FOUND AND LIBOSMOGSM_FOUND)
+    list (APPEND grgsm_link_libraries ${LIBOSMOCORE_LIBRARIES} ${LIBOSMOCODEC_LIBRARIES} ${LIBOSMOGSM_LIBRARY})
     if(LIBOSMOCODING_FOUND)
         list (APPEND grgsm_link_libraries ${LIBOSMOCODING_LIBRARIES})
     endif()
 endif()
 
-
-
 add_library(grgsm SHARED ${grgsm_sources})
 target_link_libraries(grgsm ${grgsm_link_libraries}
 # libraries required by plotting.h - have troubles to be installed by pybombs
diff --git a/lib/decoding/CMakeLists.txt b/lib/decoding/CMakeLists.txt
index c9fc744..95071ab 100644
--- a/lib/decoding/CMakeLists.txt
+++ b/lib/decoding/CMakeLists.txt
@@ -17,7 +17,7 @@
 # the Free Software Foundation, Inc., 51 Franklin Street,
 # Boston, MA 02110-1301, USA.
 
-if(NOT LIBOSMOCORE_FOUND OR NOT LIBOSMOCODEC_FOUND)
+if(NOT LIBOSMOCORE_FOUND OR NOT LIBOSMOCODEC_FOUND OR NOT LIBOSMOGSM_FOUND)
     add_subdirectory(osmocom/core)
     add_subdirectory(osmocom/codec)
     add_subdirectory(osmocom/gsm)