compat BUILD provide source instead of an object

Because it allows for hiding its symbols.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7c01dad..5f83c49 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,11 +262,11 @@
     set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
     set(CMAKE_EXE_LINK_DYNAMIC_C_FLAGS)       # remove -Wl,-Bdynamic
     set(CMAKE_EXE_LINK_DYNAMIC_CXX_FLAGS)
-    add_library(yang STATIC ${libsrc} $<TARGET_OBJECTS:compat>)
+    add_library(yang STATIC ${libsrc} ${compatsrc})
 else()
     set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
-    add_library(yangobj OBJECT ${libsrc})
-    add_library(yang SHARED $<TARGET_OBJECTS:yangobj> $<TARGET_OBJECTS:compat>)
+    add_library(yangobj OBJECT ${libsrc} ${compatsrc})
+    add_library(yang SHARED $<TARGET_OBJECTS:yangobj>)
 
     #link dl
     target_link_libraries(yang ${CMAKE_DL_LIBS})