diff --git a/CMakeLists.txt b/CMakeLists.txt index 83c8ea4..4fa48f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,3 @@ - # Libpdw: Primitives Done well! # Copyright (C) 2022 Rebekah Rowe # @@ -24,10 +23,43 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_EXPORT_COMPILE_COMMANDS true) find_package(Doxygen) -find_package(ImageMagick REQUIRED COMPONENTS convert identify ) -#if (NOT ImageMagick_idenity_FOUND) - #message(FATAL "Please install imagemagick identify") +add_library(libpdw STATIC "") + +file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") +target_sources(libpdw PUBLIC ${sources}) + +target_include_directories(libpdw PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/src/" "${CMAKE_CURRENT_SOURCE_DIR}/include/libpdw") + +if (DOXYGEN_FOUND) + doxygen_add_docs(libpdw-docs) +endif() + + +# Example using xoverlay +set(OpenGL_GL_PREFERENCE "GLVND") +find_package(PNG) # We need to link all this again since we prebuilt them staticly +find_package(GLEW) +find_package(OpenGL) +find_package(X11) +find_package(Freetype) +if(PNG_FOUND AND GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND FREETYPE_FOUND) + project (example) + + file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/example-src/*.c*") + add_executable(example ${sources}) + + target_include_directories(example PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/include/") + target_link_libraries(example libpdw + hydride + glez + ${PNG_LIBRARIES} GL GLU GLEW ${FREETYPE_LIBRARIES} ${X11_X11_LIB} ${X11_Xext_LIB} ${X11_Xfixes_LIB}) +endif() + + + +# EMBED CMAKE +find_package(ImageMagick REQUIRED COMPONENTS convert identify) function(CommandConvertImageToRgba file_in) cmake_path(GET file_in FILENAME filename) cmake_path(GET file_in PARENT_PATH filepath) @@ -132,30 +164,5 @@ endfunction() EmbedResources("${CMAKE_CURRENT_SOURCE_DIR}/res/opensans.ttf" "${CMAKE_CURRENT_SOURCE_DIR}/res/logo.png" "${CMAKE_CURRENT_SOURCE_DIR}/res/flame.png" "${CMAKE_CURRENT_SOURCE_DIR}/res/heart.png" "${CMAKE_CURRENT_SOURCE_DIR}/res/raindrop.png" "${CMAKE_CURRENT_SOURCE_DIR}/res/raindrop2.png" "${CMAKE_CURRENT_SOURCE_DIR}/res/snowflake.png") -file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") -add_library(libpdw STATIC ${EMBED_OBJ_RET} ${sources}) -target_include_directories(libpdw PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/src/" "${CMAKE_CURRENT_SOURCE_DIR}/include/libpdw" "${EMBED_HEADER_DIR}") - -if (DOXYGEN_FOUND) - doxygen_add_docs(libpdw-docs) -endif() - -# Example using xoverlay -set(OpenGL_GL_PREFERENCE "GLVND") -find_package(PNG) # We need to link all this again since we prebuilt them staticly -find_package(GLEW) -find_package(OpenGL) -find_package(X11) -find_package(Freetype) -if(PNG_FOUND AND GLEW_FOUND AND OPENGL_FOUND AND X11_FOUND AND FREETYPE_FOUND) - project (example) - - file(GLOB_RECURSE sources "${CMAKE_CURRENT_SOURCE_DIR}/example-src/*.c*") - add_executable(example ${sources}) - - target_include_directories(example PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/example-src/lib/" "${CMAKE_CURRENT_SOURCE_DIR}/include/") - target_link_libraries(example libpdw - hydride - glez - ${PNG_LIBRARIES} GL GLU GLEW ${FREETYPE_LIBRARIES} ${X11_X11_LIB} ${X11_Xext_LIB} ${X11_Xfixes_LIB}) -endif() +target_sources(libpdw STATIC ${EMBED_OBJ_RET}) +target_include_directories(libpdw PRIVATE "${EMBED_HEADER_DIR}")