Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Lex and Yac compilation CMake config errors on Windows #193

Merged
merged 2 commits into from
Mar 15, 2024

Conversation

marcboulle
Copy link
Collaborator

Correction:

  • fichier src\Learning\KWData\CMakeLists.txt : 'COMPILE_FLAGS-- nounistd' -> 'COMPILE_FLAGS "--nounistd"'
  • le fichier KWCYac.hpp, non utilise, est genere par bison: ajout dans le .gitignore

Procedure d'installation (documentee dans le wiki):

  • installation de la derniere version de windows flex et bison
  • mettre le repertoire des binaires win_flex.exe et win_bison.exe dans le path

Cohabitation avec 'Gow - The lightweight alternative to Cygwin': https://github.com/bmatzelle/gow

  • si gow est installe, cmake va chercher les binaires de flex et yac dans le repertoire bin de gow, et cela ne marche pas
  • contournement pour garder gow sur sa machine:
    • dans le repertoire bin de gow, renommer flex.exe en NO_flex.exe et bison.exe en NO_bison.exe

Mise en oeuvre, le temps d'une compilation lex et yac

  • dans le fichier CMakePreset.json, mettre "BUILD_LEX_YACC": "ON"
  • attention à "Supprimer le cache et configurer" dans le menu "Project" de Visual Studio
    • parfois, un peu laborieux, et necessaite de recommencer plusieurs fois

@marcboulle marcboulle linked an issue Mar 14, 2024 that may be closed by this pull request
@marcboulle marcboulle force-pushed the 54-lex-and-yac-compilation-does-not-work-on-windows branch 4 times, most recently from 6b67d57 to c2163bc Compare March 14, 2024 17:11
Copy link
Contributor

@bruno-at-orange bruno-at-orange left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link
Member

@folmos-at-orange folmos-at-orange left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Next time separe non related fixes into two commits

@marcboulle marcboulle force-pushed the 54-lex-and-yac-compilation-does-not-work-on-windows branch from c2163bc to 54d1f04 Compare March 15, 2024 16:33
Correction:
  - .github\actions\test-khiops-install\action.yml: correction pour mise en phase avec les nouveaux scripts de LearningTest
  - test\LearningTestTool\py\kht_apply.py: concatenation des dictionnaire dans register_all_instructions,
    sans utiliser l'operateur '|' supporte uniquement depuis python 3.9
Correction:
- fichier src\Learning\KWData\CMakeLists.txt : 'COMPILE_FLAGS-- nounistd' -> 'COMPILE_FLAGS "--nounistd"'
- un fichier KWCYac.hpp est maintenant genere par bison, et ajoute au projet dans KWData

Procedure d'installation, documentee dans le wiki 'Setting Up the Development Environment'
- installation de la derniere version de windows flex et bison
  - derniere version: version 2.5.25 (bison 3.8.2, flex 2.6.4)
    https://github.com/lexxmark/winflexbison/releases
    (cela marche avec les versions 2.5.24 et 2.5.25)
- mettre le repertoire des binaires win_flex.exe et win_bison.exe dans le path

Cohabitation avec 'Gow - The lightweight alternative to Cygwin': https://github.com/bmatzelle/gow
- si gow est installe, cmake va chercher les binaires de flex et yac dans le repertoire bin de gow, et cela ne marche pas
- contournement pour garder gow sur sa machine:
  - dans le repertoire bin de gow, renommer flex.exe en NO_flex.exe et bison.exe en NO_bison.exe

 Mise en oeuvre, le temps d'une compilation lex et yac
 - dans le fichier CMakePreset.json, mettre "BUILD_LEX_YACC": "ON"
 - attention à "Supprimer le cache et configurer" dans le menu "Project" de Visual Studio
   - parfois, un peu laborieux, et necessaite de recommencer plusieurs fois
@marcboulle marcboulle force-pushed the 54-lex-and-yac-compilation-does-not-work-on-windows branch from 54d1f04 to 187a885 Compare March 15, 2024 16:35
@marcboulle marcboulle merged commit d82e60c into dev Mar 15, 2024
53 checks passed
@marcboulle marcboulle deleted the 54-lex-and-yac-compilation-does-not-work-on-windows branch March 15, 2024 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Lex and Yac compilation does not work on Windows
3 participants