From 5e294031de7403512a838776e383bae601df47d6 Mon Sep 17 00:00:00 2001 From: Gustavo Sverzut Barbieri Date: Mon, 23 Jan 2017 18:25:22 -0200 Subject: [PATCH] cmake: fix module define translation. we can't check the options in config/eina.cmake as they were not created at that point, instead we must have a "post" file that is included after everything else is processed, options/targets all exist and can be modified. --- cmake/config/eina.cmake | 15 --------------- cmake/helpers/EflMacros.cmake | 2 ++ cmake/post/eina.cmake | 21 +++++++++++++++++++++ 3 files changed, 23 insertions(+), 15 deletions(-) create mode 100644 cmake/post/eina.cmake diff --git a/cmake/config/eina.cmake b/cmake/config/eina.cmake index 6a8f7d0..a48a14d 100644 --- a/cmake/config/eina.cmake +++ b/cmake/config/eina.cmake @@ -21,17 +21,6 @@ EFL_OPTION(ENABLE_VALGRIND "valgrind support" ${ENABLE_VALGRIND}) SET_GLOBAL(EINA_MODULE_TYPE_MP_PASS_THROUGH_DEFAULT "STATIC") -# TODO: change code to avoid these -if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC") - SET_GLOBAL(EINA_STATIC_BUILD_CHAINED_POOL 1) -endif() -if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC") - SET_GLOBAL(EINA_STATIC_BUILD_ONE_BIG 1) -endif() -if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC") - SET_GLOBAL(EINA_STATIC_BUILD_PASS_THROUGH 1) -endif() - #check for symbols in pthread #TODO Make the definitions depending on the platform set(CMAKE_REQUIRED_FLAGS "${CMAKE_THREAD_LIBS_INIT}") @@ -68,7 +57,3 @@ else() endif() #Check if there is the alloca header - -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/eina/eina_config.h.cmake - ${CMAKE_CURRENT_BINARY_DIR}/src/lib/eina/eina_config.h) diff --git a/cmake/helpers/EflMacros.cmake b/cmake/helpers/EflMacros.cmake index cdf2577..71f8cfc 100644 --- a/cmake/helpers/EflMacros.cmake +++ b/cmake/helpers/EflMacros.cmake @@ -726,6 +726,8 @@ function(EFL_LIB _target) _EFL_LIB_PROCESS_MODULES_INTERNAL() _EFL_LIB_PROCESS_TESTS_INTERNAL() + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/post/${_target}.cmake OPTIONAL) + LIST_APPEND_GLOBAL(EFL_ALL_LIBS ${_target}) endfunction() diff --git a/cmake/post/eina.cmake b/cmake/post/eina.cmake new file mode 100644 index 0000000..37be34d --- /dev/null +++ b/cmake/post/eina.cmake @@ -0,0 +1,21 @@ + +# TODO: change code to avoid these +if(EINA_MODULE_TYPE_MP_CHAINED STREQUAL "STATIC") + SET_GLOBAL(EINA_STATIC_BUILD_CHAINED_POOL 1) +else() + unset(EINA_STATIC_BUILD_CHAINED_POOL CACHE) +endif() +if(EINA_MODULE_TYPE_MP_ONE_BIG STREQUAL "STATIC") + SET_GLOBAL(EINA_STATIC_BUILD_ONE_BIG 1) +else() + unset(EINA_STATIC_BUILD_ONE_BIG CACHE) +endif() +if(EINA_MODULE_TYPE_MP_PASS_THROUGH STREQUAL "STATIC") + SET_GLOBAL(EINA_STATIC_BUILD_PASS_THROUGH 1) +else() + unset(EINA_STATIC_BUILD_PASS_THROUGH CACHE) +endif() + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/eina/eina_config.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/src/lib/eina/eina_config.h) -- 2.7.4