Bug #47795 CMake, storage engine name different from directory name
Submitted: 2 Oct 2009 13:36 Modified: 18 Dec 2009 11:44
Reporter: Magnus Blåudd Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:mysql-5.1.39 OS:Microsoft Windows
Assigned to: Magnus Blåudd CPU Architecture:Any
Triage: Triaged: D3 (Medium)

[2 Oct 2009 13:36] Magnus Blåudd
Description:
When using the pluggable storage engine CMake files the name of the engine is not honored in all places, instead the name of the directory is used as name of the engine.

How to repeat:
Add engine ndbcluster from storage/ndb

Suggested fix:
dusky:7.0-win magnus$ bzr diff
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt	2009-10-01 07:16:52 +0000
+++ CMakeLists.txt	2009-10-02 13:33:16 +0000
@@ -251,12 +251,17 @@
 FILE(GLOB STORAGE_SUBDIRS storage/*)
 FOREACH(SUBDIR ${STORAGE_SUBDIRS})
   FILE(RELATIVE_PATH DIRNAME ${PROJECT_SOURCE_DIR}/storage ${SUBDIR})
-  STRING(TOUPPER ${DIRNAME} ENGINE)
-  STRING(TOLOWER ${DIRNAME} ENGINE_LOWER) 
   IF (EXISTS ${SUBDIR}/CMakeLists.txt)
     # Check  MYSQL_STORAGE_ENGINE macro is present
     FILE(STRINGS ${SUBDIR}/CMakeLists.txt HAVE_STORAGE_ENGINE REGEX MYSQL_STORAGE_ENGINE)
     IF(HAVE_STORAGE_ENGINE)
+      # Extract name of engine from HAVE_STORAGE_ENGINE
+      STRING(REGEX REPLACE ".*MYSQL_STORAGE_ENGINE\\((.*\)\\).*"
+           "\\1" ENGINE_NAME ${HAVE_STORAGE_ENGINE})
+      MESSAGE("Found engine ${ENGINE_NAME}")
+      STRING(TOUPPER ${ENGINE_NAME} ENGINE)
+      STRING(TOLOWER ${ENGINE_NAME} ENGINE_LOWER)
+
       SET(ENGINE_BUILD_TYPE "DYNAMIC")
       # Read plug.in to find out if a plugin is mandatory and whether it supports
       # build as shared library (dynamic).
[2 Oct 2009 14:40] Magnus Blåudd
The same problem exists in win\configure.js, thus it's not possible to specify WITH_NDBCLUSTER_STORAGE_ENGINE or --with-plugin-ndbcluster etc.
[2 Oct 2009 14:43] Magnus Blåudd
Fortunately we have a hack in configure.js for WITH_NDBCLUSTER_STORAGE_ENGINE, keeping it for now.
[2 Oct 2009 19:12] Bugs System
Pushed into 5.1.39-ndb-7.1.0 (revid:frazer@mysql.com-20091002184335-8ue584ev62lh1eoh) (version source revid:frazer@mysql.com-20091002184335-8ue584ev62lh1eoh) (merge vers: 5.1.39-ndb-7.1.0) (pib:11)
[8 Oct 2009 13:20] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/86178
[8 Oct 2009 13:22] Magnus Blåudd
Pushed to 5.1-bugteam and pe
[8 Oct 2009 13:22] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/86182
[14 Oct 2009 14:39] Bugs System
Pushed into 5.1.41 (revid:joro@sun.com-20091014143611-cphb0enjlx6lpat1) (version source revid:satya.bn@sun.com-20091013071829-zc4c3go44j6re592) (merge vers: 5.1.40) (pib:13)
[15 Oct 2009 7:20] MC Brown
A note has been added to the 5.1.41 and 5.1.39-ndb-7.1.0 changelogs: 

When building a pluggable storage engine on Windows, the engine name could be based on the directory name where the engine was located, rather than the configured storage engine name.
[22 Oct 2009 6:35] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091022063126-l0qzirh9xyhp0bpc) (version source revid:alik@sun.com-20091019135554-s1pvptt6i750lfhv) (merge vers: 6.0.14-alpha) (pib:13)
[22 Oct 2009 7:07] Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091022060553-znkmxm0g0gm6ckvw) (version source revid:alik@sun.com-20091019131708-bc6pv55x6287a0wc) (merge vers: 5.5.0-beta) (pib:13)
[30 Oct 2009 11:15] MC Brown
An entry has been added to 6.0.14 and 5.5.0 changelog: 

When building a pluggable storage engine on Windows, the engine name could be based on the
directory name where the engine was located, rather than the configured storage engine
name.
[31 Oct 2009 8:20] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20091031081410-qkxmjsdzjmj840aq) (version source revid:vvaintroub@mysql.com-20091027130718-spb7zft4cffc4so4) (merge vers: 6.0.14-alpha) (pib:13)
[12 Nov 2009 8:19] Bugs System
Pushed into 5.5.0-beta (revid:alik@sun.com-20091110093229-0bh5hix780cyeicl) (version source revid:mikael@mysql.com-20091102100915-a2nbfxaqprpgptfw) (merge vers: 5.5.0-beta) (pib:13)
[18 Dec 2009 10:32] Bugs System
Pushed into 5.1.41-ndb-7.1.0 (revid:jonas@mysql.com-20091218102229-64tk47xonu3dv6r6) (version source revid:jonas@mysql.com-20091218095730-26gwjidfsdw45dto) (merge vers: 5.1.41-ndb-7.1.0) (pib:15)
[18 Dec 2009 10:48] Bugs System
Pushed into 5.1.41-ndb-6.2.19 (revid:jonas@mysql.com-20091218100224-vtzr0fahhsuhjsmt) (version source revid:jonas@mysql.com-20091217101452-qwzyaig50w74xmye) (merge vers: 5.1.41-ndb-6.2.19) (pib:15)
[18 Dec 2009 10:48] MC Brown
Added entry to 5.1.41-ndb-7.1.0
[18 Dec 2009 11:03] Bugs System
Pushed into 5.1.41-ndb-6.3.31 (revid:jonas@mysql.com-20091218100616-75d9tek96o6ob6k0) (version source revid:jonas@mysql.com-20091217154335-290no45qdins5bwo) (merge vers: 5.1.41-ndb-6.3.31) (pib:15)
[18 Dec 2009 11:17] Bugs System
Pushed into 5.1.41-ndb-7.0.11 (revid:jonas@mysql.com-20091218101303-ga32mrnr15jsa606) (version source revid:jonas@mysql.com-20091218064304-ezreonykd9f4kelk) (merge vers: 5.1.41-ndb-7.0.11) (pib:15)
[18 Dec 2009 11:44] MC Brown
Already documented in 5.1.41