use system-libs for lua and tinyxml2
use pkgconfig for opengl to avoid X requirement due to findOpenGL.cmake
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -83,7 +83,10 @@ set (blobby-server_SRC ${common_SRC}
 	)
 
 find_package(Boost REQUIRED)
-find_package(OpenGL)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(OPENGL REQUIRED opengl)
+pkg_check_modules(lua REQUIRED IMPORTED_TARGET lua)
+pkg_check_modules(tinyxml2 REQUIRED IMPORTED_TARGET tinyxml2)
 add_subdirectory(raknet)
 add_subdirectory(blobnet)
 
@@ -100,7 +103,7 @@ if (UNIX AND (NOT ANDROID))
 	add_definitions("-DBLOBBY_DATA_DIR=\"${CMAKE_INSTALL_PREFIX}/share/blobby\"")
 endif()
 
-set(BLOBBY_COMMON_LIBS lua::lua blobnet::blobnet tinyxml2::tinyxml2 PhysFS::PhysFS SDL2::SDL2main SDL2::SDL2 Boost::boost)
+set(BLOBBY_COMMON_LIBS PkgConfig::lua blobnet::blobnet PkgConfig::tinyxml2 PhysFS::PhysFS SDL2::SDL2main SDL2::SDL2 Boost::boost)
 
 # other additional dependencies
 if (NOT WIN32)
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -35,6 +35,6 @@ endif ("${SDL2_LIBRARIES}" STREQUAL "")
 
 add_executable(blobbytest GenericIOTest.cpp FileTest.cpp Base64Test.cpp ${SRC})
 
-target_include_directories(blobbytest PRIVATE ${Boost_INCLUDE_DIR} ${PHYSFS_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS} ../src)
+target_include_directories(blobbytest PRIVATE ${Boost_INCLUDE_DIR} ${PHYSFS_INCLUDE_DIR} ${SDL2_INCLUDE_DIRS} ${lua_INCLUDE_DIRS} ${tinyxml2_INCLUDE_DIRS} ../src)
 target_compile_definitions(blobbytest PRIVATE "BOOST_TEST_DYN_LINK=1")
-target_link_libraries(blobbytest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${PHYSFS_LIBRARY} ${SDL2_LIBRARIES} lua raknet tinyxml2)
+target_link_libraries(blobbytest ${Boost_UNIT_TEST_FRAMEWORK_LIBRARY} ${PHYSFS_LIBRARY} ${SDL2_LIBRARIES} ${lua_LIBRARIES} ${tinyxml2_LIBRARIES} raknet)
