From: <ego...@us...> - 2015-01-27 14:38:01
|
Revision: 60572 http://sourceforge.net/p/firebird/code/60572 Author: egorpugin Date: 2015-01-27 14:37:59 +0000 (Tue, 27 Jan 2015) Log Message: ----------- Improve Qt+MSVC build. Fix some messages. Crosscompiling improvements (add some defines). Modified Paths: -------------- firebird/trunk/CMakeLists.txt firebird/trunk/builds/cmake/BuildFunctions.cmake firebird/trunk/builds/cmake/Configure.cmake firebird/trunk/src/CMakeLists.txt firebird/trunk/src/include/gen/autoconfig.h.in Modified: firebird/trunk/CMakeLists.txt =================================================================== --- firebird/trunk/CMakeLists.txt 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/CMakeLists.txt 2015-01-27 14:37:59 UTC (rev 60572) @@ -2,18 +2,18 @@ # firebird (trunk) # -############################################################################### +################################################################################ # # cmake settings # -############################################################################### +################################################################################ cmake_minimum_required(VERSION 2.8.8) # In-source builds are not possible and so disabled. if (${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(FATAL_ERROR - "CMake generation for firebird is not possible within the source directory!" + "CMake generation for Firebird is not possible within the source directory!" "\n Remove the CMakeCache.txt file and try again from another folder, e.g.:" "\n " "\n rm CMakeCache.txt" @@ -35,16 +35,37 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "CMake Targets") -############################################################################### +################################################################################ # # project settings # -############################################################################### +################################################################################ project("firebird" C CXX) -####################################### +######################################## +# build type settings +######################################## +# Define build mode +if (NOT DEFINED CMAKE_BUILD_TYPE OR "${CMAKE_BUILD_TYPE}" STREQUAL "") + set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build.") +endif() + +# Qt with MSVC does not have multiconfiguration option by default, +# so we create it. +set(DEFAULT_CONFIGURATION) + +# Set build types if none was specified +if (NOT DEFINED CMAKE_CONFIGURATION_TYPES) + set(CMAKE_CONFIGURATION_TYPES Debug Release MinSizeRel RelWithDebInfo) + set(DEFAULT_CONFIGURATION ${CMAKE_BUILD_TYPE}) +endif() + +######################################## +# Output directory settings +######################################## + set(output_dir ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${output_dir}) @@ -54,6 +75,13 @@ set(output_dir ${output_dir}/$<CONFIG>) endif() +if (MSVC AND DEFAULT_CONFIGURATION) + foreach(conf ${CMAKE_CONFIGURATION_TYPES}) + string(TOUPPER ${conf} conf2) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${conf2} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${DEFAULT_CONFIGURATION}) + endforeach() +endif() + if (XCODE) foreach(conf ${CMAKE_CONFIGURATION_TYPES}) string(TOUPPER ${conf} conf2) @@ -64,11 +92,11 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${output_dir}/bin) endif() -############################################################################### +################################################################################ # # configure # -############################################################################### +################################################################################ include(Configure) @@ -93,11 +121,11 @@ set(AUTOCONFIG ${CMAKE_BINARY_DIR}/src/include/gen/autoconfig.h) configure_file(${AUTOCONFIG_SRC} ${AUTOCONFIG} @ONLY) -############################################################################### +################################################################################ # # compiler & linker # -############################################################################### +################################################################################ add_definitions(-DDEV_BUILD) @@ -175,11 +203,11 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread") endif() -############################################################################### +################################################################################ # # pre build # -############################################################################### +################################################################################ if (WIN32) # icu @@ -228,12 +256,11 @@ endforeach() endif() - -############################################################################### +################################################################################ # # build # -############################################################################### +################################################################################ include(BuildFunctions) @@ -273,9 +300,11 @@ project_group (libtommath Extern) ######################################## +# subdirectories +######################################## add_subdirectory("examples") add_subdirectory("src") -############################################################################### +################################################################################ Modified: firebird/trunk/builds/cmake/BuildFunctions.cmake =================================================================== --- firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/builds/cmake/BuildFunctions.cmake 2015-01-27 14:37:59 UTC (rev 60572) @@ -27,7 +27,7 @@ set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_${conf2} ${out}/${conf}/${dir}) endforeach() else() # single configuration - execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${out}/${dir}) + add_custom_command(TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${out}/${dir}) set_target_properties(${target} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${out}/${dir}) set_target_properties(${target} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${out}/${dir}) endif() @@ -103,7 +103,7 @@ ) elseif ("${type}" STREQUAL "master") get_filename_component(file ${out} NAME) - set(dir ${dir}/${file}.d) + set(dir ${dir}/${file}.d) add_custom_command( OUTPUT ${out} DEPENDS ${in} databases Modified: firebird/trunk/builds/cmake/Configure.cmake =================================================================== --- firebird/trunk/builds/cmake/Configure.cmake 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/builds/cmake/Configure.cmake 2015-01-27 14:37:59 UTC (rev 60572) @@ -40,8 +40,8 @@ function(check_type_alignment type var) if (NOT DEFINED ${var}) check_c_source_runs("main(){struct s{char a;${type} b;};exit((int)&((struct s*)0)->b);}" ${var}) - #message("-- Performing Test ${var} - It's still OK.") - message("-- Performing Test ${var} - Success") + #message(STATUS "Performing Test ${var} - It's still OK.") + message(STATUS "Performing Test ${var} - Success") set(${var} ${${var}_EXITCODE} CACHE STRING "${type} alignment" FORCE) endif() endfunction(check_type_alignment) Modified: firebird/trunk/src/CMakeLists.txt =================================================================== --- firebird/trunk/src/CMakeLists.txt 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/src/CMakeLists.txt 2015-01-27 14:37:59 UTC (rev 60572) @@ -92,18 +92,22 @@ # BUILD STEP databases ######################################## -set(databases_src - ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql +set(msgs_src ${CMAKE_CURRENT_SOURCE_DIR}/msgs/facilities2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/history2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/locales.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/messages2.sql + ${CMAKE_CURRENT_SOURCE_DIR}/msgs/msg.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/sqlstates.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/symbols2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/system_errors2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.de_DE2.sql ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.fr_FR2.sql ) +set(databases_src + ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql + ${msgs_src} +) add_custom_command( OUTPUT security.fdb DEPENDS @@ -112,8 +116,8 @@ VERBATIM # COMMAND ${CMAKE_COMMAND} -E remove security3.fdb - COMMAND ${CMAKE_COMMAND} -E echo "create database 'security3.fdb';" > create_db.sql - COMMAND boot_isql -q -i create_db.sql + COMMAND ${CMAKE_COMMAND} -E echo "create database 'security3.fdb';" > create_db_security3.sql + COMMAND boot_isql -q -i create_db_security3.sql COMMAND boot_isql -q security3.fdb -i ${CMAKE_CURRENT_SOURCE_DIR}/dbs/security.sql COMMAND ${CMAKE_COMMAND} -E copy_if_different security3.fdb security.fdb ) @@ -132,21 +136,11 @@ VERBATIM DEPENDS boot_isql - metadata.fdb - security.fdb - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/facilities2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/history2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/locales.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/messages2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/sqlstates.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/symbols2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/system_errors2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.de_DE2.sql - ${CMAKE_CURRENT_SOURCE_DIR}/msgs/transmsgs.fr_FR2.sql + ${msgs_src} # COMMAND ${CMAKE_COMMAND} -E remove msg.fdb - COMMAND ${CMAKE_COMMAND} -E echo "create database 'msg.fdb';" > create_db.sql - COMMAND boot_isql -q -i create_db.sql + COMMAND ${CMAKE_COMMAND} -E echo "create database 'msg.fdb';" > create_db_msg.sql + COMMAND boot_isql -q -i create_db_msg.sql COMMAND ${isql_exec_msg}/msg.sql # COMMAND echo loading facilities @@ -774,7 +768,7 @@ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/extern/icu/icudt52l_empty.dat ${output_dir}/icudt52l_empty.dat ) - string(FIND ${CMAKE_EXE_LINKER_FLAGS} "/machine:x64" arch) + string(FIND "${CMAKE_EXE_LINKER_FLAGS}" "/machine:x64" arch) if (NOT ${arch} EQUAL -1) set(arch "x64") else() Modified: firebird/trunk/src/include/gen/autoconfig.h.in =================================================================== --- firebird/trunk/src/include/gen/autoconfig.h.in 2015-01-27 10:46:48 UTC (rev 60571) +++ firebird/trunk/src/include/gen/autoconfig.h.in 2015-01-27 14:37:59 UTC (rev 60572) @@ -45,6 +45,9 @@ /* Define this if OS is AIX */ #cmakedefine AIX 1 +/* Define this if OS is ANDROID */ +#cmakedefine ANDROID 1 + /* Define this if OS is DARWIN */ #cmakedefine DARWIN 1 @@ -54,6 +57,9 @@ /* Define this if OS is HP-UX */ #cmakedefine HPUX 1 +/* Define this if OS is iOS */ +#cmakedefine IOS 1 + /* Define this if OS is Linux */ #cmakedefine LINUX 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |