|
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.
|