Bonjour,

dans mon passage d'Autotools à CMake, je viens (encore) de tomber sur un os.

Dans mon fichier configure.ac, j'ai ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
ILP_PATHS=$libdir/otawa/ilp
LOADER_PATHS=$libdir/otawa/loader
PROC_PATHS=$libdir/otawa/proc
SIMULATOR_PATHS=$libdir/otawa/sim
 
# Configurations
AS_AC_EXPAND(ILP_PATHS, "$ILP_PATHS")
AC_DEFINE_UNQUOTED(ILP_PATHS, "$ILP_PATHS", [Paths for ILP plugins])
AS_AC_EXPAND(LOADER_PATHS,"$LOADER_PATHS")
AC_DEFINE_UNQUOTED(LOADER_PATHS, "$LOADER_PATHS", [Paths for loader plugins])
AS_AC_EXPAND(PROC_PATHS,"$PROC_PATHS")
AC_DEFINE_UNQUOTED(PROC_PATHS, "$PROC_PATHS", [Paths for processor plugins])
AS_AC_EXPAND(SIMULATOR_PATHS, "$SIMULATOR_PATHS")
AC_DEFINE_UNQUOTED(SIMULATOR_PATHS, "$SIMULATOR_PATHS", [Paths for simulator plugins])
Sous CMake j'ai essayé de le "convertir" en faisant ça

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
if(CMAKE_BUILD_TYPE MATCHES Release)
	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D ILP_PATHS=lib/otawa/ilp")
	set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -D LOADER_PATHS=lib/otawa/loader")
endif (CMAKE_BUILD_TYPE MATCHES Release)
Sauf que à la compilation j'obtiens

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
manager.cpp: In constructor 'otawa::Manager::Manager()':
manager.cpp:148:21: error: 'lib' was not declared in this scope
manager.cpp:148:21: error: expected primary-expression before '/' token
manager.cpp:148:30: error: expected primary-expression before ')' token
manager.cpp:150:24: error: expected primary-expression before '/' token
manager.cpp:150:24: error: 'loader' was notdeclared in this scope
manager.cpp:151:61: error: 'SIMULATOR_PATHS' was not declared in this scope
manager.cpp: At global scope:
manager.cpp:634:43: error: 'DATE' was not declared in this scope
mingw32-make[2]: *** [src/prog/CMakeFiles/libotawa.dir/manager.cpp.obj] Error 1
mingw32-make[1]: *** [src/prog/CMakeFiles/libotawa.dir/all] Error 2
mingw32-make: *** [all] Error 2
Comment faire ? J'ai essayé de mettre des chemins complets vers le dossier, j'ai un message d'erreur à cause du ":", il ne reconnait que la lettre du disque dur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
manager.cpp:148:21: error: 'D' was not declared in this scope
manager.cpp:150:24: error: expected ')' before ':' token