Mercurial > malikania
changeset 205:c973501abe36
windows: many fixes for MinGW and VS
While here, add more options to malikania_define_library and do not put include
directories to assets.
Also remove some useless bits.
line wrap: on
line diff
--- a/cmake/function/MalikaniaDefineExecutable.cmake Thu Nov 29 12:41:27 2018 +0100 +++ b/cmake/function/MalikaniaDefineExecutable.cmake Thu Nov 29 12:57:30 2018 +0100 @@ -52,7 +52,7 @@ target_include_directories( ${EXE_TARGET} PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/assets + ${CMAKE_CURRENT_BINARY_DIR} ${EXE_INCLUDES} ) target_compile_definitions(${EXE_TARGET} PRIVATE ${EXE_FLAGS})
--- a/cmake/function/MalikaniaDefineLibrary.cmake Thu Nov 29 12:41:27 2018 +0100 +++ b/cmake/function/MalikaniaDefineLibrary.cmake Thu Nov 29 12:57:30 2018 +0100 @@ -24,10 +24,15 @@ # TARGET The target name # SOURCES The sources # ASSETS (Optional) Additional assets files -# FLAGS (Optional) List of flags -# PRIVATE_INCLUDES (Optional) List of includes only for building the library -# PUBLIC_INCLUDES (Optional) List of public includes to share with the library users -# LIBRARIES (Optional) List of libraries to link against +# INTERFACE_FLAGS (Optional) List of interface flags +# PRIVATE_FLAGS (Optional) list of private flags +# PUBLIC_FLAGS (Optional) list of public flags +# INTERFACE_INCLUDES (Optional) List of interface include directories +# INTERFACE_LIBRARIES (Optional) List of interface libraries +# PRIVATE_INCLUDES (Optional) List of private include directories +# PRIVATE_LIBRARIES (Optional) List of private libraries +# PUBLIC_INCLUDES (Optional) List of public include directories +# PUBLIC_LIBRARIES (Optional) List of public libraries # ) # # Create a library and install it. @@ -37,8 +42,20 @@ function(malikania_define_library) set(singleArgs TARGET) - set(multiArgs ASSETS SOURCES FLAGS PRIVATE_INCLUDES PUBLIC_INCLUDES LIBRARIES) - set(mandatory TARGET SOURCES) + set( + multiArgs + ASSETS + INTERFACE_FLAGS + INTERFACE_INCLUDES + INTERFACE_LIBRARIES + PRIVATE_FLAGS + PRIVATE_INCLUDES + PRIVATE_LIBRARIES + PUBLIC_FLAGS + PUBLIC_INCLUDES + PUBLIC_LIBRARIES + SOURCES + ) cmake_parse_arguments(LIB "" "${singleArgs}" "${multiArgs}" ${ARGN}) @@ -54,17 +71,26 @@ # Create the shared library. add_library(${LIB_TARGET} SHARED ${LIB_SOURCES} ${assets} ${LIB_ASSETS}) - target_link_libraries(${LIB_TARGET} ${LIB_LIBRARIES}) + target_link_libraries( + ${LIB_TARGET} + PRIVATE ${LIB_PRIVATE_LIBRARIES} + PUBLIC ${LIB_PUBLIC_LIBRARIES} + INTERFACE ${LIB_INTERFACE_LIBRARIES} + ) target_include_directories( ${LIB_TARGET} PRIVATE - ${CMAKE_CURRENT_BINARY_DIR}/assets + ${CMAKE_CURRENT_BINARY_DIR} ${LIB_PRIVATE_INCLUDES} - PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR} - ${LIB_PUBLIC_INCLUDES} + PUBLIC ${LIB_PUBLIC_INCLUDES} + INTERFACE ${LIB_INTERFACE_INCLUDES} ) - target_compile_definitions(${LIB_TARGET} PRIVATE ${LIB_FLAGS}) + target_compile_definitions( + ${LIB_TARGET} + PRIVATE ${LIB_PRIVATE_FLAGS} + PUBLIC ${LIB_PUBLIC_FLAGS} + INTERFACE ${LIB_INTERFACE_FLAGS} + ) set_target_properties( ${LIB_TARGET} PROPERTIES
--- a/cmake/function/MalikaniaDefineTest.cmake Thu Nov 29 12:41:27 2018 +0100 +++ b/cmake/function/MalikaniaDefineTest.cmake Thu Nov 29 12:57:30 2018 +0100 @@ -34,8 +34,6 @@ # and CMAKE_CURRENT_BINARY_DIR are automatically set. # -include(CMakeParseArguments) - function(malikania_create_test) set(singleArgs NAME) set(multiArgs FLAGS LIBRARIES SOURCES RESOURCES) @@ -65,7 +63,6 @@ add_test( NAME ${TEST_NAME} COMMAND $<TARGET_FILE:test-${TEST_NAME}> - WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/test/${TEST_NAME} ) target_link_libraries(
--- a/cmake/packages/FindSDL2.cmake Thu Nov 29 12:41:27 2018 +0100 +++ b/cmake/packages/FindSDL2.cmake Thu Nov 29 12:57:30 2018 +0100 @@ -5,7 +5,7 @@ # # SDL2_INCLUDE_DIRS, where to find SDL.h # SDL2_LIBRARIES, where to find library -# SDL2MAIN_LIBRARY, where to find SDLmain +# SDL2MAIN_LIBRARIES, libraries for SDLmain # SDL2_FOUND, if it is found find_path(SDL2_INCLUDE_DIR NAMES SDL.h PATH_SUFFIXES SDL2) @@ -15,11 +15,19 @@ include(FindPackageHandleStandardArgs) find_package_handle_standard_args( - SDL2 - FOUND_VAR SDL2_FOUND - REQUIRED_VARS SDL2_LIBRARY SDL2_INCLUDE_DIR + SDL2 + FOUND_VAR SDL2_FOUND + REQUIRED_VARS SDL2_LIBRARY SDL2MAIN_LIBRARY SDL2_INCLUDE_DIR ) +if (SDL2MAIN_LIBRARY) + if (MINGW) + set(SDL2MAIN_LIBRARIES -lmingw32 ${SDL2MAIN_LIBRARY} -mwindows) + else () + set(SDL2MAIN_LIBRARIES ${SDL2MAIN_LIBRARY}) + endif () +endif () + set(SDL2_LIBRARIES ${SDL2_LIBRARY}) set(SDL2_INCLUDE_DIRS ${SDL2_INCLUDE_DIR})
--- a/examples/animation/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/animation/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,7 @@ malikania_define_example( TARGET animation - LIBRARIES libmlk-client ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ) +
--- a/examples/font/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/font/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET font - LIBRARIES libmlk-client ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/image/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/image/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET image - LIBRARIES libmlk-client ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/js-animation/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/js-animation/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET js-animation - LIBRARIES libmlk-client-js ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client-js SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/js-font/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/js-font/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET js-font - LIBRARIES libmlk-client-js ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client-js SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/js-image/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/js-image/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET js-image - LIBRARIES libmlk-client-js ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client-js SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/js-sprite/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/js-sprite/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET js-sprite - LIBRARIES libmlk-client-js ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client-js SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/js-window/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/js-window/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET js-window - LIBRARIES libmlk-client-js ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client-js SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/examples/sprite/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/examples/sprite/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -18,6 +18,6 @@ malikania_define_example( TARGET sprite - LIBRARIES libmlk-client ${SDL2MAIN_LIBRARY} + LIBRARIES ${SDL2MAIN_LIBRARIES} libmlk-client SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp )
--- a/libmlk-client-js-test/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-client-js-test/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -20,14 +20,15 @@ set( SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/malikania/client/js/test/js_api_fixture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/malikania/client/js/test/js_api_fixture.hpp + ${PROJECT_SOURCE_DIR}/malikania/client/js/test/js_api_fixture.cpp + ${PROJECT_SOURCE_DIR}/malikania/client/js/test/js_api_fixture.hpp ) malikania_define_library( TARGET libmlk-client-js-test SOURCES ${SOURCES} - LIBRARIES + PUBLIC_INCLUDES $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> + PUBLIC_LIBRARIES libmlk-client-js libmlk-js-test )
--- a/libmlk-client-js/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-client-js/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -42,7 +42,7 @@ PROJECT libmlk-client-js TARGET libmlk-client-js SOURCES ${SOURCES} - LIBRARIES libmlk-client libmlk-js + PUBLIC_LIBRARIES libmlk-client libmlk-js PUBLIC_INCLUDES $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> )
--- a/libmlk-client/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-client/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -73,7 +73,7 @@ ${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS} ${SDL2_TTF_INCLUDE_DIRS} - LIBRARIES + PUBLIC_LIBRARIES ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES} ${SDL2_TTF_LIBRARIES}
--- a/libmlk-client/malikania/client/theme.cpp Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-client/malikania/client/theme.cpp Thu Nov 29 12:57:30 2018 +0100 @@ -29,7 +29,7 @@ namespace { -#include <dejavu_sans.hpp> +#include <assets/dejavu_sans.hpp> } // !namespace
--- a/libmlk-db-test/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-db-test/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -40,7 +40,7 @@ malikania_define_library( TARGET libmlk-db-test SOURCES ${HEADERS} ${SOURCES} - LIBRARIES ${LIBRARIES} + PUBLIC_LIBRARIES ${LIBRARIES} FLAGS PG_CTL_EXECUTABLE="${PG_CTL_EXECUTABLE}" PSQL_EXECUTABLE="${PSQL_EXECUTABLE}"
--- a/libmlk-db/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-db/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -34,10 +34,7 @@ malikania_define_library( TARGET libmlk-db SOURCES ${SOURCES} - LIBRARIES - ${PostgreSQL_LIBRARIES} - PUBLIC_INCLUDES - ${libmlk-db_SOURCE_DIR}/malikania - PRIVATE_INCLUDES - ${PostgreSQL_INCLUDE_DIRS} + PUBLIC_LIBRARIES ${PostgreSQL_LIBRARIES} + PUBLIC_INCLUDES ${libmlk-db_SOURCE_DIR}/malikania + PRIVATE_INCLUDES ${PostgreSQL_INCLUDE_DIRS} )
--- a/libmlk-js-test/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-js-test/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -20,12 +20,13 @@ set( SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/malikania/js/test/js_api_fixture.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/malikania/js/test/js_api_fixture.hpp + ${PROJECT_SOURCE_DIR}/malikania/js/test/js_api_fixture.cpp + ${PROJECT_SOURCE_DIR}/malikania/js/test/js_api_fixture.hpp ) malikania_define_library( TARGET libmlk-js-test SOURCES ${HEADERS} ${SOURCES} - LIBRARIES libmlk-js + PUBLIC_LIBRARIES libmlk-js + PUBLIC_INCLUDES $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}> )
--- a/libmlk-js/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-js/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -44,7 +44,7 @@ SOURCES ${SOURCES} PUBLIC_INCLUDES $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> - LIBRARIES + PUBLIC_LIBRARIES Boost::boost Boost::dynamic_linking Boost::disable_autolinking
--- a/libmlk-server/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk-server/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -46,7 +46,7 @@ malikania_define_library( TARGET libmlk-server SOURCES ${SOURCES} - LIBRARIES ${LIBRARIES} + PUBLIC_LIBRARIES ${LIBRARIES} PUBLIC_INCLUDES ${libmlk-server_SOURCE_DIR} PRIVATE_INCLUDES
--- a/libmlk/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/libmlk/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -45,7 +45,7 @@ ) if (CMAKE_SYSTEM_NAME MATCHES "Windows") - list(APPEND LIBRARIES ws2_32) + list(APPEND LIBRARIES ws2_32 mswsock) endif () malikania_define_library( @@ -54,7 +54,7 @@ SOURCES ${SOURCES} PUBLIC_INCLUDES $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> - LIBRARIES + PUBLIC_LIBRARIES Boost::boost Boost::dynamic_linking Boost::disable_autolinking
--- a/mlk-client/CMakeLists.txt Thu Nov 29 12:41:27 2018 +0100 +++ b/mlk-client/CMakeLists.txt Thu Nov 29 12:57:30 2018 +0100 @@ -30,7 +30,7 @@ TARGET mlk-client SOURCES ${SOURCES} LIBRARIES - ${SDL2MAIN_LIBRARY} + ${SDL2MAIN_LIBRARIES} Threads::Threads libmlk-client-js )
--- a/mlk-client/main.cpp Thu Nov 29 12:41:27 2018 +0100 +++ b/mlk-client/main.cpp Thu Nov 29 12:57:30 2018 +0100 @@ -26,7 +26,7 @@ #include <malikania/client/sprite.hpp> #include <malikania/client/theme.hpp> -#include <ui.hpp> +#include <assets/ui.hpp> class loop : public mlk::client::dispatcher { };